diff --git a/src/core/ev.c b/src/core/ev.c index 96154731..4beb49da 100644 --- a/src/core/ev.c +++ b/src/core/ev.c @@ -693,9 +693,9 @@ static DWORD WINAPI janet_timeout_body(LPVOID ptr) { JanetThreadedTimeout tto = *(JanetThreadedTimeout *)ptr; janet_free(ptr); SleepEx((DWORD)(tto.sec * 1000), TRUE); + janet_interpreter_interrupt(tto.vm); JanetEVGenericMessage msg = {0}; janet_ev_post_event(tto.vm, janet_timeout_cb, msg); - janet_interpreter_interrupt(tto.vm); return 0; } #else @@ -716,9 +716,9 @@ static void *janet_timeout_body(void *ptr) { ? (long)((tto.sec - ((uint32_t)tto.sec)) * 1000000000) : 0; nanosleep(&ts, &ts); + janet_interpreter_interrupt(tto.vm); JanetEVGenericMessage msg = {0}; janet_ev_post_event(tto.vm, janet_timeout_cb, msg); - janet_interpreter_interrupt(tto.vm); return NULL; } #endif