void draw_init(int draw_flags) { wpar.flags = draw_flags; makeShuffledList(imageFuncList, NUM_IMAGE_FUNCTIONS); wpar.next = (draw_flags & DRAW_LOGO) ? -1 : imageFuncList[imageFuncListIndex]; worker = emscripten_create_worker("worker.js"); /* Could start a worker call here but simpler not to. */ }
int main() { w1 = emscripten_create_worker("worker.js"); int x[1] = { 0 }; emscripten_call_worker(w1, "one", (char*)x, sizeof(x), c1, (void*)97); return 0; }
int main() { w1 = emscripten_create_worker("worker.js"); printf("wait -1? %d\n", emscripten_get_worker_queue_size(w1)); assert(emscripten_get_worker_queue_size(w1) == 0); emscripten_call_worker(w1, "one", (char*)x, sizeof(Info)*2, c1, (void*)1); printf("wait -1? %d\n", emscripten_get_worker_queue_size(w1)); assert(emscripten_get_worker_queue_size(w1) == 1); stage = 1; // make sure we get here return 0; }
int main(int argc, char** argv) { //printf("Main func. argc=%d\n", argc); //printf("%s %s %s\n", argv[1], argv[2], argv[3]); lua = argv[1]; input = argv[2]; query_file = argv[3]; worker = emscripten_create_worker("datalog.js"); emscripten_set_main_loop(loop, /*fps*/ 1, true); return 0; }
void c2(char *data, int size, void *arg) { // tests queuing up several messages, each with different data assert((int)arg == stage); Info *x2 = (Info*)data; int i = stage - 3; printf("c2-%d\n", i); printf("%d, %.2f, %d, %.2f\n", x2[0].i, x2[0].f, x2[0].c, x2[0].d); printf("%d, %.2f, %d, %.2f\n", x[i].i, x[i].f, x[i].c, x[i].d); assert(x2[0].i == x[i].i+1); assert(x2[0].f == x[i].f-1); assert(x2[0].c == x[i].c+1); assert(x2[0].d == x[i].d-1); if (stage == 5) { int w2 = emscripten_create_worker("worker.js"); emscripten_call_worker(w2, "three", NULL, 0, NULL, (void*)6); // bump calls in new worker, once emscripten_call_worker(w1, "four", NULL, 0, c3, (void*)7); emscripten_call_worker(w2, "four", NULL, 0, c3, (void*)8); } stage++; }