summaryrefslogtreecommitdiff
path: root/node_modules/webworker-threads/examples/fiveThreads.ls
blob: 9d8b32430dda8339450312b051faad1006c8ff6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env lsc
# Same as multiThreadEvented.ls, but with 5 workers

{ Worker } = require \webworker-threads

for til 5 => (new Worker ->
    fibo = (n) -> if n > 1 then fibo(n - 1) + fibo(n - 2) else 1
    @onmessage = ({ data }) -> postMessage fibo data
)
    ..onmessage = ({ data }) ->
        console.log "[#{ @thread.id }] #data"
        @postMessage Math.ceil Math.random! * 30
    ..postMessage Math.ceil Math.random! * 30

do spin = -> process.nextTick spin