[Python-Dev] PEP needed? Introducing Tcl objects

Jeffrey Hobbs jeff@hobbs.org
Tue, 19 Feb 2002 08:53:53 -0800


> Of Jeff's options, invoking Tcl_SetMaxBlockTime seemed to be most
> promising: I want Tcl_DoOneEvent to return after 20ms, to give other
> Tcl threads a chance. So I invented the patch
> ought to continously increase the counter in the label (once a
> second), but doesn't, atleast not on Linux, using Tcl 8.3.3.  In the
> strace output, it appears that it first does a select call with a
> timeout, but that is followed by one without time limit before
> Tcl_DoOneEvent returns.

IIRC, Tcl_SetMaxBlockTime is a one-short call - it sets the next
block time, not all block times.  I'm sure there was a reason for
this, but that was implemented before I was a core guy.  Anyway,
I think you just need to try:

-		result = Tcl_DoOneEvent(TCL_DONT_WAIT);
+		Tcl_SetMaxBlockTime(&blocktime);
+		result = Tcl_DoOneEvent(0);

and see if that satisfies the need for responsiveness as well as
not blocking.