docs(canvas): explain compute workers and display resource lifetimes
This commit is contained in:
@@ -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'}));
|
||||
|
||||
Reference in New Issue
Block a user