Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!akgua!mcnc!idis!dan From: dan@idis.UUCP (Dan Strick) Newsgroups: net.unix-wizards Subject: Re: 4.2 progressive or dead end Message-ID: <276@idis.UUCP> Date: Sat, 14-Apr-84 15:56:49 EST Article-I.D.: idis.276 Posted: Sat Apr 14 15:56:49 1984 Date-Received: Sun, 15-Apr-84 09:34:01 EST References: <127@down.UUCP> <389@denelcor.UUCP> ut-sally.1931 Lines: 18 The "brouhaha about signals in 4.2BSD" is not unwarranted. The interruption of a system call by a signal was useful behavior for which 4.2bsd provides no good substitute. It is damn near impossible to simulate the old behavior and the only other way to avoid restarting a system call is to (yecchh) longjump. I was too kind. Correct simulation of the old behavior is completely impractical. One can add code to a signal handler to peek at the machine instruction that will be executed when the interrupted program is resumed (yecchh) and increment the interrupted pc to skip over CHMK instructions (double yecchh), but there is no reasonable way to determine if the system call was interrupted (just look at the stacked ps (check for carry set) and the stacked register 0 (check for EINTR error code) but where is the stacked register 0?). Sometimes I feel like trading in our vax for a pdp 11/40 and running rt11. Dan Strick [decvax|mcnc]!idis!dan