From 7a3df0a18465ceebe43f3183daa2f9397c4e5ebb Mon Sep 17 00:00:00 2001 From: andy finch Date: Fri, 5 Apr 2019 15:57:59 -0400 Subject: Add worker benchmarks (#2059) --- js/workers.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'js') diff --git a/js/workers.ts b/js/workers.ts index 601ffa0b1..8c08a8506 100644 --- a/js/workers.ts +++ b/js/workers.ts @@ -150,11 +150,13 @@ export interface Worker { onmessage?: (e: { data: any }) => void; onmessageerror?: () => void; postMessage(data: any): void; + closed: Promise; } export class WorkerImpl implements Worker { private readonly rid: number; private isClosing: boolean = false; + private readonly isClosedPromise: Promise; public onerror?: () => void; public onmessage?: (data: any) => void; public onmessageerror?: () => void; @@ -162,11 +164,16 @@ export class WorkerImpl implements Worker { constructor(specifier: string) { this.rid = createWorker(specifier); this.run(); - hostGetWorkerClosed(this.rid).then(() => { + this.isClosedPromise = hostGetWorkerClosed(this.rid); + this.isClosedPromise.then(() => { this.isClosing = true; }); } + get closed(): Promise { + return this.isClosedPromise; + } + postMessage(data: any): void { hostPostMessage(this.rid, data); } -- cgit v1.2.3