From 8383ac341f0de983f9df6eb589ee893a2ac11aba Mon Sep 17 00:00:00 2001 From: sebres Date: Mon, 10 Jul 2017 10:58:42 +0000 Subject: avoid blocking wait if we've some retarded events (from last event-cycle) and max blocking time was not set outside an event source traversal. --- generic/tclNotify.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/generic/tclNotify.c b/generic/tclNotify.c index baed116..28c3879 100644 --- a/generic/tclNotify.c +++ b/generic/tclNotify.c @@ -1077,6 +1077,18 @@ SetUpEventSources( } tsdPtr->inTraversal--; + /* + * If we've some retarded events (from last event-cycle), wait non-blocking. + */ + if ( tsdPtr->firstRetardEv + && ( !tsdPtr->blockTimeSet + || tsdPtr->blockTimeServLev < tsdPtr->serviceLevel ) + ) { + tsdPtr->blockTime.sec = 0; + tsdPtr->blockTime.usec = 0; + tsdPtr->blockTimeSet = 1; + } + return res; } -- cgit v0.12