diff --git a/src/lime/_internal/backend/html5/HTML5Thread.hx b/src/lime/_internal/backend/html5/HTML5Thread.hx index b4f3d22ba..b14e5cac3 100644 --- a/src/lime/_internal/backend/html5/HTML5Thread.hx +++ b/src/lime/_internal/backend/html5/HTML5Thread.hx @@ -55,8 +55,8 @@ class HTML5Thread { try { - job.dispatch(); Lib.global.onmessage = __current.dispatchMessage; + job.dispatch(); } catch (e:Dynamic) { @@ -317,7 +317,6 @@ abstract WorkFunction(WorkFunctionData) from Wor { if (Context.defined("lime-warn-portability")) { - trace(qualifiedFunc); Context.warning("Value doesn't appear to be a static function.", func.pos); } return defaultOutput; @@ -602,6 +601,6 @@ class Lib // specification only uses the former. @:forward abstract Transferable(Dynamic) #if macro from Dynamic - #else from js.lib.ArrayBuffer from js.html.MessagePort from js.html.ImageBitmap #end + #else from lime.utils.ArrayBuffer from js.html.MessagePort from js.html.ImageBitmap #end { } diff --git a/src/lime/system/BackgroundWorker.hx b/src/lime/system/BackgroundWorker.hx index 39844e086..cfa741145 100644 --- a/src/lime/system/BackgroundWorker.hx +++ b/src/lime/system/BackgroundWorker.hx @@ -36,6 +36,8 @@ abstract BackgroundWorker(ThreadPool) @:deprecated("Instead pass the callback to BackgroundWorker.run().") @:noCompletion @:dox(hide) public var doWork(get, never):{ add: (Dynamic->Void) -> Void }; + public var eventSource(get, never):Dynamic; + /** __Call this only from the main thread.__ @@ -127,6 +129,11 @@ abstract BackgroundWorker(ThreadPool) // Getters & Setters + private inline function get_eventSource():Dynamic + { + return this.eventSource != null ? this.eventSource.state : null; + } + private function get_doWork() { return { diff --git a/src/lime/system/ThreadPool.hx b/src/lime/system/ThreadPool.hx index 88dcdc751..9efa61315 100644 --- a/src/lime/system/ThreadPool.hx +++ b/src/lime/system/ThreadPool.hx @@ -330,6 +330,9 @@ class ThreadPool extends WorkOutput if (job.event == EXIT) { + #if html5 + Thread.current().destroy(); + #end return; }