tst-too-many-cleanups never completes
Daniel Jacobowitz
drow at false.org
Mon Apr 16 18:49:22 PDT 2007
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
More information about the uClibc
mailing list