On Tue, Jun 07, 2005 at 01:23:54PM +0200, Johannes Stezenbach wrote: > On Tue, Jun 07, 2005 at 12:36:48PM +0200, Dr. Werner Fink wrote: > > On Tue, Jun 07, 2005 at 11:24:36AM +0200, Johannes Stezenbach wrote: > > > > > > vdr sets a watchdog with alarm(). Signals could also come > > > from the kernel (SIGIO, SIGCHLD etc.). (I thought vdr uses > > > signals internally, but this doesn't seem to be true anymore). > > > > Don't forget the realtime thread handling which uses > > signals in some implementations. > > I think linux_threads doesn't interrupt blocking syscalls > with signals unless you use pthread_cancel(). Yep: vdr/Devel> grep pthread_cancel vdr-1.3.25/ -r vdr-1.3.25/thread.c: pthread_cancel(childTid); beside this the Makefile uses -D_GNU_SOURCE which force the automatic restart after the syscall was signaled during its operation. > > NPTL doesn't use signals to wake up sleeping threads at all. The original VDR 1.2.6 uses SIGIO for waking up threads. Werner -- AC3 loop through sound card http://bitstreamout.sourceforge.net/ Howto http://www.vdr-portal.de/board/thread.php?threadid=1958 ------------------------------------------------------------------ "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr