summaryrefslogtreecommitdiff
path: root/tests/test_worker_module.js
blob: ddf8e40074b1f599a2369d28a4bfc6bc9479740f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* Worker code for test_worker.js */
import * as std from "std";
import * as os from "os";

var parent = os.Worker.parent;

function handle_msg(e) {
    var ev = e.data;
    //          print("child_recv", JSON.stringify(ev));
    switch(ev.type) {
    case "abort":
        parent.postMessage({ type: "done" });
        parent.onmessage = null; /* terminate the worker */
        break;
    case "sab":
        /* modify the SharedArrayBuffer */
        ev.buf[2] = 10;
        parent.postMessage({ type: "sab_done", buf: ev.buf });
        break;
    }
}

function worker_main() {
    var i;

    parent.onmessage = handle_msg;
    for(i = 0; i < 10; i++) {
        parent.postMessage({ type: "num", num: i });
    }
}

worker_main();