This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin 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: [PATCH suggestion] exceptions.cc, interrupt_setup ()


PT> The problem is triggered by the sigdelayed0() code which always
PT> restores the signal mask (exceptions.cc, line 1237) using

Sorry, I spread a misinformation. The above is not quite valid. Should
be:

The problem is triggered by the sigreturn() code which always
restores the signal mask (exceptions.cc, line 1191) using
sigsave.oldmask.

The text below is still valid though.

PT> sigsave.oldmask. The real problem is that the sigsave.oldmask field
PT> is never initialised when preparing to execute a signal handler.
PT> So imagine that someone set sigsave.oldmask to some value (sigsuspend() in this case),
PT> then you will always get this value as the signal mask after a signal handler is called.


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