diff options
Diffstat (limited to 'node_modules/webworker-threads/src/worker.ls')
| -rw-r--r-- | node_modules/webworker-threads/src/worker.ls | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/node_modules/webworker-threads/src/worker.ls b/node_modules/webworker-threads/src/worker.ls new file mode 100644 index 0000000..4570bbb --- /dev/null +++ b/node_modules/webworker-threads/src/worker.ls @@ -0,0 +1,18 @@ +function Worker () => Threads = this; class + (code) -> + @thread = t = Threads.create! + t.on \message (args) ~> @onmessage? data: args + t.on \error (args) ~> @onerror? args + t.on \close -> t.destroy! + @terminate = -> t.destroy! + @add-event-listener = (event, cb) ~> + if event is \message + @onmessage = cb + else + t.on event, cb + @dispatch-event = (event) -> t.emitSerialized event.type, event + @post-message = (data) -> t.emitSerialized \message {data} + if typeof code is \function + t.eval "(#code)()" + else if code? + t.load code |
