Path: utzoo!attcan!uunet!husc6!bbn!rochester!ur-tut!ur-valhalla!micropen!dave From: dave@micropen (David F. Carlson) Newsgroups: comp.unix.questions Subject: SYS V sigset(2) Keywords: sigset(2) signal(2) SYSV.3.0 Message-ID: <507@micropen> Date: 14 Jun 88 20:23:46 GMT Organization: Micropen Dirent Writing Systems, Pittsford, NY Lines: 27 I have a program in which it is "useful" to have reliable signals, and therefore I must use sigset(2) (under System Vr3.0). Problem is that the man pages tell me that when I am in a handler the signal is automatically set to SIG_HOLD. SIG_HOLD queues up to 1 occurance if the signal is again received. However, I am finding by way of a stack dump that my signal handler is being entered *again and again* even though sigset(2) is being used throughout my entire process (for that signal and all others.) Of course, the exclusive resource assumed by the signal handler is locked by a previous entry and deadlock results. Why is the documented sighold not stopping further occurances when I am in the signal handler? Also, a related question: How does sigpause(2) differ from pause(2) for waiting? The man pages detail dire consequences for mixing signal(2) and sigset(2) but I see little relation between pause(2) and sigset(2). Is there a hidden hazard or is this only a problem of wating within a signal handler itself? Any help would be appreciated. Funny how out of date things like Bach's book are when it is barely 2 years old. -- David F. Carlson, Micropen, Inc. ...!{ames|harvard|rutgers|topaz|...}!rochester!ur-valhalla!micropen!dave "The faster I go, the behinder I get." --Lewis Carroll