docs(canvas): explain compute workers and display resource lifetimes

This commit is contained in:
2026-11-12 00:19:19 +08:00
parent af8e2fe76b
commit b471d88520
12 changed files with 136 additions and 0 deletions
+7
View File
@@ -1,7 +1,14 @@
/**
* 单请求摘要 Worker 入口。只接收 version/id/Blob,输出摘要或稳定错误码,不拥有任何模型、凭证或持久任务。
* 宿主在完成/取消时 terminate;accepted 防止一个专用 Worker 误被重复消息启动第二份计算。
*/
import {digestWorkerSource} from './digest-worker-source.ts';
// Dedicated to one request. Host terminates on success/failure/abort; no storage, model or credentials here.
/** 将 globalThis 限定为本 Worker 使用的消息接口,避免引入浏览器页面组件依赖。 */
const scope=globalThis as unknown as {onmessage:((event:MessageEvent)=>void)|null;postMessage(value:unknown):void};
/** 首条有效请求被接受后保持 true,直到整个 Worker 被宿主终止。 */
let accepted=false;
/** 校验协议和请求后启动只读摘要;成功/失败都回显输入 ID 与字节数,供宿主核对。 */
scope.onmessage=event=>{
const request=event.data;if(accepted||!request||request.version!==1||!Number.isSafeInteger(request.id)||request.id<1||!(request.bytes instanceof Blob))return;accepted=true;
void digestWorkerSource(request.bytes).then(sha256=>scope.postMessage({version:1,id:request.id,byteLength:request.bytes.size,sha256}),()=>scope.postMessage({version:1,id:request.id,byteLength:request.bytes.size,error:'digest_worker_failed'}));