OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script src="worker_utils.js"></script> | |
4 </head> | |
5 <body> | |
6 <div id=result></div> | |
7 <script> | |
8 function log(message) | |
9 { | |
10 document.getElementById("result").innerHTML += message + "<br>"; | |
11 } | |
12 | |
13 var url = document.location.toString(); | |
14 var num_workers = parseInt(url.substr(url.search("count=") + 6)); | |
15 | |
16 if (!num_workers) { | |
17 log("No count= parameter provided - test aborted"); | |
18 } else { | |
19 for (var i = 0; i < num_workers ; ++i) { | |
20 createWorker(i); | |
21 } | |
22 | |
23 // Create two extra workers - these should both be queued, and launched as a | |
24 // single instance when we shutdown a worker. | |
25 createWorker(num_workers); | |
26 createWorker(num_workers); | |
27 } | |
28 | |
29 var workers_created = 0; | |
30 function createWorker(i) { | |
31 var worker = new SharedWorker("worker_common.js?id=" + i); | |
32 worker.port.postMessage("ping"); | |
33 worker.port.onmessage = function() { | |
34 workers_created++; | |
35 log("worker " + i + " started"); | |
36 if (workers_created == num_workers) { | |
37 // We've created all of our workers. Let's shut down the most recent one | |
38 // and see if we startup the queued worker. | |
39 log("Shutting down worker " + i); | |
40 worker.port.postMessage("close"); | |
41 } else if (workers_created == (num_workers+2)) { | |
42 // created the last worker | |
43 log("SUCCESS: queued worker created"); | |
44 onSuccess(); | |
45 } | |
46 } | |
47 } | |
48 </script> | |
49 | |
50 </body> | |
51 </html> | |
OLD | NEW |