Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!lll-lcc!unisoft!cerebus!fai!wjvax!brett From: brett@wjvax.UUCP (Brett Galloway) Newsgroups: comp.unix.wizards Subject: Re: No more signals Message-ID: <967@wjvax.wjvax.UUCP> Date: Thu, 9-Jul-87 22:14:12 EDT Article-I.D.: wjvax.967 Posted: Thu Jul 9 22:14:12 1987 Date-Received: Tue, 14-Jul-87 01:47:37 EDT References: <48300005@hcx1> <1714@munnari.oz> <492@its63b.ed.ac.uk> <1216@ius2.cs.cmu.edu> Reply-To: brett@wjvax.UUCP (Brett Galloway) Organization: Watkins-Johnson Co., San Jose, Calif. Lines: 30 In article <1216@ius2.cs.cmu.edu> edw@ius2.cs.cmu.edu (Eddie Wyatt) writes: >In article <492@its63b.ed.ac.uk>, simon@its63b.ed.ac.uk (Simon Brown) writes: >> ... If I send 5 SIGINT signals to a >> process, there is no guarentee that that process will receive them all - ok, >> it will certainly receive at least one, but whether it receives 2,3,4 or 5 >> is pretty much left to chance! > This really isn't a bug as far as I know. The documentation for signal >and sigvec specifically say that the interrupt causing the interrupt >handler to be called is mask out during the time the interrupt handler >is executing and then restored at the end of the call. If any of >those interrupts come during the time the interrupt handler is >called then they are lost, simple is that ... I was under the impression that signals were *blocked*, not ignored, during the signal handler. Thus, if a signal arrives during the time the interrupt handler is called, it is blocked until the handler returns, at which time the handler is invoked *again*. Signal blocking is what makes Berkeley signals "reliable". However, Berekely signals are not queued (unlike, as I understand it, SIGCLD in SYSV). This is why the user often needs a secondary mechanism (such as wait3(2) for SIGCHLD or select(2) for SIGIO) to process a signal. As is evident, Berkeley signals operate conceptually just like hardware interrupts. -- ------------- Brett Galloway {pesnta,twg,ios,qubix,turtlevax,tymix,vecpyr,certes,isi}!wjvax!brett