mirror of
https://github.com/janet-lang/janet
synced 2024-11-13 20:24:48 +00:00
Merge branch 'master' of github.com:janet-lang/janet
This commit is contained in:
commit
de542a81c0
@ -1261,8 +1261,25 @@ JanetFiber *janet_loop1(void) {
|
|||||||
memset(&to, 0, sizeof(to));
|
memset(&to, 0, sizeof(to));
|
||||||
int has_timeout;
|
int has_timeout;
|
||||||
/* Drop timeouts that are no longer needed */
|
/* Drop timeouts that are no longer needed */
|
||||||
while ((has_timeout = peek_timeout(&to)) && (to.curr_fiber == NULL) && to.fiber->sched_id != to.sched_id) {
|
while ((has_timeout = peek_timeout(&to))) {
|
||||||
pop_timeout(0);
|
if (to.curr_fiber != NULL) {
|
||||||
|
JanetFiberStatus s = janet_fiber_status(to.curr_fiber);
|
||||||
|
int is_finished = (s == JANET_STATUS_DEAD ||
|
||||||
|
s == JANET_STATUS_ERROR ||
|
||||||
|
s == JANET_STATUS_USER0 ||
|
||||||
|
s == JANET_STATUS_USER1 ||
|
||||||
|
s == JANET_STATUS_USER2 ||
|
||||||
|
s == JANET_STATUS_USER3 ||
|
||||||
|
s == JANET_STATUS_USER4);
|
||||||
|
if (is_finished) {
|
||||||
|
pop_timeout(0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} else if (to.fiber->sched_id != to.sched_id) {
|
||||||
|
pop_timeout(0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
/* Run polling implementation only if pending timeouts or pending events */
|
/* Run polling implementation only if pending timeouts or pending events */
|
||||||
if (janet_vm.tq_count || janet_vm.listener_count || janet_vm.extra_listeners) {
|
if (janet_vm.tq_count || janet_vm.listener_count || janet_vm.extra_listeners) {
|
||||||
|
Loading…
Reference in New Issue
Block a user