summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Walzer <kw@codebykevin.com>2015-03-10 14:44:47 (GMT)
committerKevin Walzer <kw@codebykevin.com>2015-03-10 14:44:47 (GMT)
commit474530cbab83e3898f889a99f8e4421296a34db5 (patch)
treeb804bd7c91b30a519139989d5af3a82fa6392357
parent484e7d2a8f9cb45329427e73a7aa4e5346c2318d (diff)
downloadtcl-474530cbab83e3898f889a99f8e4421296a34db5.zip
tcl-474530cbab83e3898f889a99f8e4421296a34db5.tar.gz
tcl-474530cbab83e3898f889a99f8e4421296a34db5.tar.bz2
Fix or at least improvement for Tcl/Tk Cocoa event loop by forcing Tcl_ServiceAll() event processing: http://core.tcl.tk/tk/tktview/3028676fffffffffffffffffffffffffffffffff
-rw-r--r--macosx/tclMacOSXNotify.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
index fb3c848..2252ec1 100644
--- a/macosx/tclMacOSXNotify.c
+++ b/macosx/tclMacOSXNotify.c
@@ -1377,7 +1377,8 @@ UpdateWaitingListAndServiceEvents(
if (tsdPtr->runLoopTimer && !tsdPtr->runLoopServicingEvents &&
(tsdPtr->runLoopNestingLevel > 1 || !tsdPtr->runLoopRunning)) {
tsdPtr->runLoopServicingEvents = 1;
- while (Tcl_ServiceAll() && tsdPtr->waitTime == 0) {}
+ /* This call seems to simply force event processing through and prevents hangups that have long been observed with Tk-Cocoa. */
+ Tcl_ServiceAll();
tsdPtr->runLoopServicingEvents = 0;
}
break;