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()


Bertold Kolics <Bertold.Kolics@Sun.COM> writes:

> Hi Kaz,
>
> Thanks for the prompt answer.
>
> Kaz Kylheku wrote:
>> 
>> On Fri, 18 Jan 2002, Bertold Kolics wrote:
>> [ reformated to 79 cols ]
>
> I am sorry about that.
>
>> > I suspect that this race condition only happens if the *only* thing
>> > the thread manager has to do is to send a restart signal to the issuing
>> > thread when servicing a REQ_PROCESS_EXIT request. Otherwise, the thread
>> > manager will send cancel signals to the other threads and thus will give
>> > a chance to the suspend() to finish in the main thread before sending
>> > a restart signal to it.
>> 
>> suspend() and restart() are fundamental to all synchronization in
>> LinuxThreads. If they are broken, then the problem is much more serious
>> than hanging in exit() symptom you are seeing, and requires a real fix.
>
> 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,

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


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