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 ...

> - 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 ... but then again, this is a 
good example of why implementing POSIX threads via signals sucks a lot

> So... Mike, you added this - how did it terminate? :-)

it was originally developed against uClibc-0.9.26 ... interaction between libc 
and libpthread and libc itself has changed dramatically since ...

so the test can probably be disabled pending tweaks since the issue it tests 
for i know ive forward ported and merged into trunk
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc

Reply via email to