select and EINTR and SIG33
Greg Smith
gsmith at nc.rr.com
Thu Jun 9 21:48:21 UTC 2005
I am running an uptodate FC3 - smp kernel 2.6.11-1.27 on a 3.2Ghz
pentium 4 w/ht.
I have a multi-threaded user app where one thread is doing select() on a
single fd with a timeout of 1/2th second (500ms). The fd is not
expected to be ready very often - it is the keyboard. However, testing
shows that select is returning on average every 3.5ms; 99% of the time
RC == -1 and errno == EINTR. strace shows the select is being
interrupted by `Unknown signal 33'.
I want this thread to be woken up twice a second, not 250+. I have
other threads doing useful work.
What is SIG33? I suspect that it has something to do with NPTL. Can I
block or ignore this signal? I tried sigfillset() and pthread_sigmask()
but no joy. Can I change the behaviour of my other threads to affect
the frequency of SIG33? Can I affect which thread is going to get
SIG33? Is there a better place to ask this question?
Thanks,
Greg Smith
More information about the fedora-list
mailing list