CONCURRENCY & FOUNDATIONS

OpenHarmony Worker.

从跨线程消息到生命周期边界,让并发基础模块更稳定、更可观测。

项目背景

OpenHarmony 公共基础类库中的 Worker 模块为应用提供并发任务、跨线程消息、生命周期管理与序列化能力。模块涉及主线程与 Worker 的环境、调度和资源释放,需要在正常流程与退出边界上保持一致。

我的职责

担任 Worker 模块接口人,负责 C++ 实现、接口与开发者文档、缺陷闭环和测试回归;承担需求澄清、多分支交付跟踪与开发者支持。

以下内容描述个人参与和负责的部分,项目仓库包含团队共同维护的代码。

跨线程回调与上下文

在 DC 组件场景中,处理 Worker 回调上下文缺失问题:设计 workerEnv 回调暂存与触发机制,调整 ContainerScope 的初始化、释放与上下文适配,并补充多场景单元测试。

这一类问题需要同时核对回调到达时间、上下文准备状态和资源有效性,让代码中的状态判断与实际调度顺序对应。

消息派发与退出边界

完善 HostOnMessageInner 的状态判断、uv_async 句柄初始化和主线程 EventHandler 调度,处理 host 已退出、初始化未完成等边界,避免在退出阶段继续派发消息或访问失效环境。

同时修复退出与异常路径中的内存泄漏、HandleScope 和资源释放问题,调整多级 Worker 创建失败时的数量统计更新逻辑,补充相应回归验证。

接口协同与可观测性

  • 实现 taskpool 并发函数判断能力,协同完成实现、运行时、接口、文档和测试等五个仓库的交付。
  • 定位 Worker primitive 序列化问题,补充 OpenHarmony 兼容性测试用例。
  • 为创建、消息派发与退出链路设计 trace 埋点,让问题分析能够关联到具体阶段。

验证与边界

交付结合单元测试、兼容性测试(XTS / ACTS)和多分支回归。这里不提供缺少测量依据的性能提升数字;公开案例侧重个人修改、覆盖的边界和验证方式。

网站中的 Worker 生命周期实验 用确定性模拟解释状态、排队与退出。它是一种教学模型,具体实现需要以对应运行时的源码和接口约定为准。