[Python-Dev] PEP needed? Introducing Tcl objects (original) (raw)

Jeff Hobbs JeffH@ActiveState.com
Wed, 20 Feb 2002 10:33:25 -0800


So if TCLDONTWAIT isn't set, it will block; if it is, it will busy-wait. Looks like we lose either way.

In-between, it invokes the setupProcs of each input source, so that they can set a maxblocktime, but I don't think tkinter should hack itself into that process.

That's correct - I should have looked a bit more into what I did before (I was always tying in another GUI's event loop). However, I don't see why you should not consider the extra event source. Tk uses this itself for X. It would be something like:

[in tk setup] Tcl_CreateEventSource(TkinterSetupProc, NULL, NULL);

/* *---------------------------------------------------------------------- *

*/

static void TkinterSetupProc(clientData, flags) ClientData clientData; /* Not used. */ int flags; { static Tcl_Time blockTime = { 0, 20000 }; Tcl_SetMaxBlockTime(&blockTime); }

In fact, you can look at tk/unix/tkUnixEvent.c to see something similar already done in Tk.

About thread-safety: Is Tcl 8.3 thread-safe in its standard installation, so that we can just use it from multiple threads? If not, what is the compile-time check to determine whether it is thread-safe? If there is none, I really don't see a solution, and the

You would compile with --enable-threads (both Tcl and Tk).

Jeff