chris@mimsy.UUCP (08/27/87)
Index: etc/inetd.c 4.3BSD Fix Description: Inetd has a classic asynchronous programming error that could make it `miss' a SIGHUP signal. Repeat-By: Unlikely. Read the code instead. Fix: The extra `if' cuts down on syscall overhead, since nsock==0 is rare. RCS file: RCS/inetd.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c2 -r1.1 -r1.2 *** /tmp/,RCSt1007856 Thu Aug 27 04:03:51 1987 --- /tmp/,RCSt2007856 Thu Aug 27 04:03:53 1987 *************** *** 211,216 **** fd_set readable; ! while (nsock == 0) sigpause(0); readable = allsock; if ((n = select(maxsock + 1, &readable, (fd_set *)0, --- 211,220 ---- fd_set readable; ! if (nsock == 0) { ! (void) sigblock(SIGBLOCK); ! while (nsock == 0) sigpause(0); + (void) sigsetmask(0); + } readable = allsock; if ((n = select(maxsock + 1, &readable, (fd_set *)0, -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690) Domain: chris@mimsy.umd.edu Path: seismo!mimsy!chris