This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [libc-alpha] mt-application hanging in exit()


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

Attachment: sigtestpth.c
Description: Binary data

Attachment: sigtestpth
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]