Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!harvard!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.bugs.uucp Subject: Re: Re: hung line help needed Message-ID: <1479@umcp-cs.UUCP> Date: Thu, 29-Nov-84 21:44:06 EST Article-I.D.: umcp-cs.1479 Posted: Thu Nov 29 21:44:06 1984 Date-Received: Sat, 1-Dec-84 19:11:24 EST References: <85@daemon.UUCP> <33700001@trsvax.UUCP> <2923@allegra.UUCP> <542@godot.UUCP> <2933@allegra.UUCP> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 22 At high load averages, sleep() may hang randomly waiting for a signal that has already arrived. I haven't tried this myself, but you might try changing while (!ringring) sigpause(omask & ~mask(SIGALRM)); to sigblock(mask(SIGALRM)); /* make next test atomic */ while (!ringring) { /* test */ sigpause(omask & ~mask(SIGALRM)); /* await signal(s) */ sigsetmask(omask); /* allow alarm through */ sigblock(mask(SIGALRM));/* make next test atomic */ } sigsetmask(omask); /* restore signal mask */ -- (This line accidently left nonblank.) In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (301) 454-7690 UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland