#include /* Copyright (c) 1983 University of Maryland Computer Science Department */ /* * Jobs library emulator using old signal mechanism * * 26 March 1983 ACT * * held_sigs == the signals held via sighold() * executing_sigs == the signals held because the signal handler is already * running * pending_sigs == the signals pending, for sigrelse() or whatever * * 25 May 1985 ACT: installed fixes from zinfandel!ed: sigset returns * bogus value on first call (or after calls to signal); sigignore was * missing a "return". Also wrote sigpause, for what it's worth (very * little). */ static long held_sigs, pending_sigs, executing_sigs; static int (*sigfuncs[32])(); int sigcatch(); int (*sigset (signo, f))() register int signo; register int (*f)(); { int (*rv)() = sigfuncs[signo]; int (*oldsig)(); if (f == SIG_DFL || f == SIG_IGN) { /* these are just zap-em-ins */ sigfuncs[signo] = f; oldsig = signal (signo, f); pending_sigs &= ~(1<