mirror of
https://github.com/janet-lang/janet
synced 2025-07-28 23:02:53 +00:00
Prevent deadline timeout being less than zero
This commit is contained in:
parent
09ac85b1b9
commit
a24e5b1eaa
@ -662,8 +662,7 @@ static void janet_timeout_cb(JanetEVGenericMessage msg) {
|
|||||||
#ifdef JANET_WINDOWS
|
#ifdef JANET_WINDOWS
|
||||||
static DWORD WINAPI janet_timeout_body(LPVOID ptr) {
|
static DWORD WINAPI janet_timeout_body(LPVOID ptr) {
|
||||||
JanetThreadedTimeout *tto = (JanetThreadedTimeout *)ptr;
|
JanetThreadedTimeout *tto = (JanetThreadedTimeout *)ptr;
|
||||||
double sec = (tto->sec > 0) ? tto->sec : 0;
|
SleepEx((DWORD)(tto->sec * 1000), TRUE);
|
||||||
SleepEx((DWORD)(sec * 1000), TRUE);
|
|
||||||
if (janet_fiber_can_resume(tto->fiber)) {
|
if (janet_fiber_can_resume(tto->fiber)) {
|
||||||
janet_interpreter_interrupt(tto->vm);
|
janet_interpreter_interrupt(tto->vm);
|
||||||
JanetEVGenericMessage msg = {0};
|
JanetEVGenericMessage msg = {0};
|
||||||
@ -3176,6 +3175,7 @@ JANET_CORE_FN(cfun_ev_deadline,
|
|||||||
"background thread to try to interrupt the VM if the timeout expires.") {
|
"background thread to try to interrupt the VM if the timeout expires.") {
|
||||||
janet_arity(argc, 1, 4);
|
janet_arity(argc, 1, 4);
|
||||||
double sec = janet_getnumber(argv, 0);
|
double sec = janet_getnumber(argv, 0);
|
||||||
|
sec = (sec < 0) ? 0 : sec;
|
||||||
JanetFiber *tocancel = janet_optfiber(argv, argc, 1, janet_vm.root_fiber);
|
JanetFiber *tocancel = janet_optfiber(argv, argc, 1, janet_vm.root_fiber);
|
||||||
JanetFiber *tocheck = janet_optfiber(argv, argc, 2, janet_vm.fiber);
|
JanetFiber *tocheck = janet_optfiber(argv, argc, 2, janet_vm.fiber);
|
||||||
int use_interrupt = janet_optboolean(argv, argc, 3, 0);
|
int use_interrupt = janet_optboolean(argv, argc, 3, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user