On Mon, Apr 16, 2007 at 09:14:37PM -0400, Mike Frysinger wrote: > On Monday 16 April 2007, Daniel Jacobowitz wrote: > > - It calls sleep expecting a cancellation point at nanosleep. But > > libc.so's sleep.c has "libc_hidden_proto(nanosleep)" which means it > > always calls the libc.so version, never the wrapped version in > > libpthread.so that's a cancellation point. Delete that line from > > sleep.c and usleep.c and now sleep/usleep start acting like > > cancellation points. > > i need to finish up my local cancellation handler rewrite and get it > merged ...
Or just move on to NPTL, tbh... > > - It never terminates. This is the bit I've got a question about - I > > can't see how it ever would terminate. Main returns, so we end up in > > exit. The manager thread sends a cancellation signal to every > > thread. But because we're already in a cancellation handler, SIGRT_1 > > is blocked. So we'll spin forever in exit. This is one of the > > reasons you're not supposed to have infinite loops in your > > cancellation handlers. > > it did when i wrote it ;) and it does on glibc ... Only on NPTL. I tried LinuxThreads, and the same thing happens there - not surprising, it's the same code. Anyway, I'll take your advice and disable the test. -- Daniel Jacobowitz CodeSourcery _______________________________________________ uClibc mailing list [email protected] http://busybox.net/cgi-bin/mailman/listinfo/uclibc
