Red Hat Bugzilla – Bug 118838
cannot send signals to threads waiting on (p)select
Last modified: 2007-11-30 17:10:38 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1)
Description of problem:
My multithread application works in the following scenario.
- set signal handler for SIGCONT
(in fact it restores only signal service)
- blocks the SIGCONT signal by calling the pthread_sigmask function
- listens on pselect on the set of IO channels
enabling catching the SIGCONT signal
- sends SIGCONT (pthread_kill) to the thread #1 informing
that set of IO channels change their status
Result is that process disapear !
Does it mean that signal catching can be done only by sigwait call?
Version-Release number of selected component (if applicable):
glibc 2.3.2 build 101.4
Steps to Reproduce:
As in description
Actual Results: process diesapear
Expected Results: Info, how to catch signals in thread waiting on
Please write a short testcase which reproduces your problem.
Created attachment 98857 [details]
example of source code for bug#118838 illustration
$ g++ pkill.cpp -o pkill -lpthread
I have shrink the code of my application to isolate the proble.
Funny! This code works properly - see attachment.