aardio 文档

thread.cancellation 库模块帮助文档

协作式取消

thread 成员列表 #

thread.cancellation() #

返回对象:cancellationSourceObject

thread.cancellation 成员列表 #

一次性协作式取消
手动复位事件;取消后持续有信号,不提供 reset/pulse。不是强杀线程或任务清理器。

创建新的取消源,失败返回 null,错误信息。
每个任务一个新源;源必须保留到所有 worker 结束。仅 token 描述符可跨线程/进程传递。

thread.cancellation.cancel(令牌描述符) #

凭描述符请求取消,可跨进程调用;只打开、不创建。
成功返回 true;失败返回 null,错误信息,可选系统代码。重复取消安全,不等于任务已经结束。

thread.cancellation.open() #

返回对象:cancellationObserverObject

thread.cancellation.open(令牌描述符) #

只打开已有取消事件,返回只读观察者;失败返回 null,错误信息,可选系统代码。
绝不重建已失效的令牌;观察者持独立不可继承 SYNCHRONIZE 句柄。使用后调用 close。

cancellationObserverObject 成员列表 #

cancellationObserverObject.close() #

关闭观察者自有句柄,handle 设为 null;可重复调用,也由 GC 兜底。

cancellationObserverObject.handle #

借用的只读等待句柄,可传给多句柄等待;不得自行关闭。
也可直接把观察者传给 mutex.wait(timeout,observer) 或 waitOne。

cancellationObserverObject.isCancelled() #

非阻塞检查:已取消 true,未取消 false,失败 null,状态,原生代码。
不要把检查失败当成未取消;关闭后检查会失败。

cancellationObserverObject.wait(超时毫秒) #

阻塞等待取消信号,默认无限;返回值同 thread.wait。
成功 true 代表收到取消请求,不表示业务已经结束;超时 false,"timeout",258。

cancellationObserverObject.waitOne(超时毫秒) #

处理窗口消息等待取消,返回值同 thread.waitOne;成功返回 1。
worker 使用 wait 或 waitOne 均可;等待期间不得关闭观察者。

cancellationSourceObject 成员列表 #

cancellationSourceObject.cancel() #

请求取消,重复调用安全;不释放 source,不等待 worker。
成功返回 true,关闭后返回 null,错误信息。

cancellationSourceObject.close() #

关闭源的自有句柄;可重复调用,也由 GC 兜底。
不是 cancel;仍存活的观察者继续有效;所有引用关闭后旧 token 失效。

cancellationSourceObject.token #

可序列化的表 {schema=1;eventName="事件名称"}。
可 JSON 编解码,不要修改;不包含句柄,不延长事件寿命。

Markdown 格式