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