| #include <emscripten/emscripten.h> |
| #include <emscripten/html5.h> |
| #include <emscripten/em_asm.h> |
| #include <assert.h> |
| #include <stdlib.h> |
| |
| int func1Executed = 0; |
| int func2Executed = 0; |
| |
| void func1(void *userData); |
| |
| void func2(void *userData) { |
| assert((long)userData == 2); |
| ++func2Executed; |
| |
| if (func2Executed == 1) |
| { |
| // Test canceling a setTimeout: register a callback but then cancel it immediately |
| long id = emscripten_set_timeout(func1, 10, (void*)2); |
| emscripten_clear_timeout(id); |
| |
| emscripten_set_timeout(func2, 100, (void*)2); |
| } |
| if (func2Executed == 2) |
| { |
| assert(func1Executed == 1); |
| exit(0); |
| } |
| } |
| |
| void func1(void *userData) { |
| assert((long)userData == 1); |
| ++func1Executed; |
| |
| assert(func1Executed == 1); |
| |
| emscripten_set_timeout(func2, 100, (void*)2); |
| } |
| |
| int main() { |
| emscripten_set_timeout(func1, 100, (void*)1); |
| emscripten_exit_with_live_runtime(); |
| return 99; |
| } |