summaryrefslogtreecommitdiff
path: root/node_modules/webworker-threads/test.ls
blob: a6610d08623420c3e56b1019b5b6abf6e2722043 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env lsc
{ Worker } = require \webworker-threads
w = new Worker ->
  # This also works, but less elegant:
  # ``onmessage`` = (data: {max}) ->
  @onmessage = (data: {max}) ->
    :search for n from 2 to max
      for i from 2 to Math.sqrt n
        continue search unless n % i
      postMessage { result: n }
    throw \done
w.onmessage = (data: {result}) ->
  console.log "#result is a prime"
w.onerror = ({data}) ->
  console.log "Caught:", data
  <~ setTimeout _, 100ms
  @terminate!
w.postMessage max: 100