4.2 progressive or dead end

Dan Strick dan at idis.UUCP
Sun Apr 15 06:56:49 AEST 1984


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



More information about the Comp.unix.wizards mailing list