Files
ability_ability_runtime/frameworks
openharmony_ci 226ed47e39 !18964 merge fix/remove-wfc-awaitsync into master
fix(ani): replace waitForCompletion with awaitSync in ServiceExtensionAbility

Created-by: zhuheng_z
Commit-by: zh
Merged-by: openharmony_ci
Description: **IssueNo**: https://gitcode.com/openharmony/xts_acts/issues/27898

**Description**:

ArkVM 正在从有栈协程迁移到无栈协程,`waitForCompletion()` 在 stackless 模式下会死锁,需要替换。
本 PR 将 `@ohos.app.ability.ServiceExtensionAbility.ets` 中的 `callPromise` 方法的 `waitForCompletion(async () => { return await p })` 替换为 `p.awaitSync()`。

ArkVM is migrating from stackful to stackless coroutines. `waitForCompletion()` deadlocks in stackless mode.
This PR replaces `waitForCompletion(async () => { return await p })` with `p.awaitSync()` in the `callPromise` method of `@ohos.app.ability.ServiceExtensionAbility.ets`.

改动文件 / Changed file:
- `frameworks/ets/ets/@ohos.app.ability.ServiceExtensionAbility.ets` — `callPromise` 方法(被 native `ets_service_extension.cpp` 通过 ANI `Class_FindMethod("callPromise")` 调用)

**稳定性自检:**
| 自检项 | 自检结果 |
| --- | --- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发 | 不涉及 |
| 成员变量进行赋值或创建需要排查并发 | 不涉及 |
| 其余项 | 不涉及,仅替换 ETS 层同步等待原语,不改变控制流和并发语义 |

**安全编码自检:**
| 自检项 | 自检结果 |
| --- | --- |
| 全部项 | 不涉及,本次改动仅在 ETS 层替换 waitForCompletion 为 awaitSync,不涉及 C++ 代码 |

**TDD Result**: 不涉及,仅替换 ETS 层同步等待原语

**XTS Result**: 不涉及

### 是否已执行L0用例
- [x] 不涉及。仅替换 ETS 层 `waitForCompletion` 为 `awaitSync`,语义等价,不改变 ANI 调用接口

See merge request: openharmony/ability_ability_runtime!18964
2026-04-24 18:53:29 +08:00
..
2026-03-24 09:23:06 +08:00
2026-04-08 11:55:55 +08:00