On Dec 5 12:25, Takashi Yano wrote: > Currently, the signal queue is touched by the thread sig as well as > other threads that call sigaction_worker(). This potentially has > a possibility to destroy the signal queue chain. A possible worst > result may be a self-loop chain which causes infinite loop. With > this patch, lock()/unlock() are introduce to avoid such a situation. > > Fixes: 474048c26edf ("* sigproc.cc (pending_signals::add): Just index > directly into signal array rather than treating the array as a heap.") > Suggested-by: Corinna Vinschen <cori...@vinschen.de> > Reviewed-by: Corinna Vinschen <cori...@vinschen.de> > Signed-off-by: Takashi Yano <takashi.y...@nifty.ne.jp> > --- > winsup/cygwin/exceptions.cc | 12 +++++------ > winsup/cygwin/local_includes/sigproc.h | 2 +- > winsup/cygwin/signal.cc | 4 ++-- > winsup/cygwin/sigproc.cc | 28 +++++++++++++++++++++----- > 4 files changed, 32 insertions(+), 14 deletions(-)
LGTM, please push. Thanks, Corinna