[libc-alpha] mt-application hanging in exit()
Bertold Kolics
Bertold.Kolics@Sun.COM
Sat Jan 19 11:28:00 GMT 2002
Hallo Andreas,
>> Then we must have a problem. I can reproduce it each & every time. I have run
>> my app under strace using microsec timestamping, and I could see the restart
>> signal arriving before the signal mask modification is done inside suspend().
>
>Please send a *small* program that shows the problem,
I may have found the problem, but I still believe that there is a problem in glibc.
Before setting up the signal handlers, I used to clear the signal mask of the process.
If this is the case, the application hangs. Otherwise, everything is OK.
Then, I took a look at which signal is set before clearing the mask (sigismember())
and found that SIGRTMIN is set.
I understand the SIGRTMIN is the restart signal. What I don't understand is that
why it affects the termination of the program if I clear the mask before creating
any thread.
Attached is a small program (source & binary).
If you invoke it with '0' as an argument, it will not clear the signal mask of the process.
Otherwise, it will be cleared.
Thanks for your assistance.
Tschuss,
Bertold Kolics
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sigtestpth.c
Type: application/octet-stream
Size: 1557 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20020119/9fd9a00c/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sigtestpth
Type: application/octet-stream
Size: 5016 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20020119/9fd9a00c/attachment-0001.obj>
More information about the Libc-alpha
mailing list