From: Andreas K. <and...@ac...> - 2004-10-21 21:43:06
|
Status: The reference implementations [*] for TIP #218 have been completed and tested. They are available as patches against the CVS head of 8.4 and 8.5 as of Oct 20. Known limitation, Linux specific: If you move a pipe channel to a different thread and close it in that thread you may get an error message about a lost child process. This is due to the non-standard implementation of threads under Linux, which partially look like processes to the kernel. This causes "waitpid" to be unable to wait for child processes created by a different thread in the same process. The manpage for "waitpid" claims that this has been fixeed for kernel v2.4+, however the kernel I had here was 2.4 and still exhibited the problem. So, please give this a whirl. Notes: % When loading an extension providing a v4 channel driver CD into a Tcl core which does not understand v4 drivers the core will crash. Reasoning: * Tcl_ChannelVersion will report that channels based on CD are version _1_, not 4. * The above means that the accessor for the BlockModeProc will return 0x04 as pointer to the blockmodeproc, and not the true pointer. A crash will result when dereferencing. * The BlockModeProc is used with certainty. % We had a similar transition between 8.3.1 and 8.3.2 (Introduction of versions, Sep 28, 2000) % The TIP #91 transition (v3) was between 8.3 and 8.4 (May 24, 2002) ~~ [*] For 8.4 and 8.5. -- Andreas Kupries <andreask@ActiveState.com> Developer @ http://www.ActiveState.com, a division of Sophos Tel: +1 604 484 6491 |