test_worker_module.js (737B)
1 /* Worker code for test_worker.js */ 2 import * as std from "std"; 3 import * as os from "os"; 4 5 var parent = os.Worker.parent; 6 7 function handle_msg(e) { 8 var ev = e.data; 9 // print("child_recv", JSON.stringify(ev)); 10 switch(ev.type) { 11 case "abort": 12 parent.postMessage({ type: "done" }); 13 parent.onmessage = null; /* terminate the worker */ 14 break; 15 case "sab": 16 /* modify the SharedArrayBuffer */ 17 ev.buf[2] = 10; 18 parent.postMessage({ type: "sab_done", buf: ev.buf }); 19 break; 20 } 21 } 22 23 function worker_main() { 24 var i; 25 26 parent.onmessage = handle_msg; 27 for(i = 0; i < 10; i++) { 28 parent.postMessage({ type: "num", num: i }); 29 } 30 } 31 32 worker_main();