> On Wed, Mar 31, 2004 at 01:54:35PM +0200, Leopold Toetsch said: > > > Probably select have been called without timeout. > > > > Yes that's true. But the event thread wakes up the io_thread (s. > > stop_io_thread). This seems to fail with PTH as it doesn't preempt. > > > > Looking at the code, this seems to happen, when a thread is created and > > never started. The main interpreter tries to join that thread > > nethertheless. I've set another flag which should cure this flaw. > > FWIW, and I have no idea if it's related, I've been hitting problems > with threads in $other project. > > The problem boiled down the fact that mutexes can be either fast, > recursive or error checking. The 'fast' type doesn't care about thread > ownership and can be unlocked by anything. > > *BSD and Solaris all use 'error checking' whilst linux, for some unknown > reason, defaults to 'fast' which can cause a whole host of problems. > > This may or may not be what we're seeing here. > > This thread ... > > http://sourceforge.net/mailarchive/forum.php?thread_id=1560582&forum_id=7710 > > gives more details. > > Simon
I wonder if this problem will remain in the kernel-supported threads of NetBSD 2.x? http://netbsd.gw.com/cgi-bin/man-cgi?pthread++NetBSD-current http://www.mit.edu/people/nathanw/usenix/freenix-sa/freenix-sa.html Nick.