Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site winston.UUCP Path: utzoo!utcsri!ubc-vision!winston!wolfe From: wolfe@winston.UUCP (Peter Wolfe) Newsgroups: net.unix-wizards Subject: 4.2BSD and Signals Message-ID: <173@winston.UUCP> Date: Thu, 23-Jan-86 18:24:35 EST Article-I.D.: winston.173 Posted: Thu Jan 23 18:24:35 1986 Date-Received: Fri, 24-Jan-86 02:05:01 EST Organization: New Media Technologies, Burnaby, BC, CANADA Lines: 29 I am having a problem with 4.2BSD signals and would like some light shed on my problem. I am using the ITIMER_VIRTUAL interval timer to generate periodic (6666 micro second interval) clock interrupts for a OS I am writing. The signal SIGVTALRM is delivered to a catcher function which calls a handler etc. I also turn off interrupts (i.e. block signals) during critical sections using oldmask = sigblock(sigs) and sigsetmask(oldmask). The problem is that I get SIGVTALRM signals delivered when SIGVTALRM is (well at least it should be) blocked from delivery. This obviously causes problems and the OS (the one I am writing) crashes. I look (using dbx) at the sc_mask field of the sig_context structure passed to the signal catcher and lo and behold SIGVTALRM is set as being ignored!!! What gives??? Am I missing something??? Has anyone else had this problem??? The problem can not be reliably repeated but if I run the program I get about one crash in every seven runs. Helpppppppppppp ..... Drowning in Signals and handlers. -- Peter Wolfe New Media Technologies ..decvax!microsoft!ubc-vision!winston!wolfe ..ihnp4!alberta!ubc-vision!winston!wolfe