Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!sun-barr!cs.utexas.edu!wuarchive!usc!jarthur!uunet!tdatirv!sarima From: sarima@tdatirv.UUCP (Stanley Friesen) Newsgroups: comp.lang.c Subject: Re: longjmp out of signal handler (was Re: alloca() portability) Message-ID: <67@tdatirv.UUCP> Date: 22 Nov 90 01:27:03 GMT References: <14377@smoke.brl.mil> <9122@ncar.ucar.edu> <27537@mimsy.umd.edu> <1990Nov09.233527.7489@chinet.chi.il.us> <27608@mimsy.umd.edu> <15@christmas.UUCP> <1990Nov16.181436.21736@zoo.toronto.edu> Reply-To: sarima@tdatirv.UUCP (Stanley Friesen) Organization: Teradata Corp., Irvine Lines: 18 In article <1990Nov16.181436.21736@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes: >In case Chris doesn't have paragraphs to spare right now, here's a few >sentences. :-) It is extremely difficult to guarantee that anything >will work portably in signal handlers, because the stranger C environments >put bizarre restrictions on them due to difficulties with calling conventions >and the like. Just to emphasize this point, I have recently come across a real implementation where such a restriction exists. I am currently learning the library interface to AmigaDOS, and its implementation of 'signals' totally prohibits longjumps out of the handler. This is due to several factors - mostly involving system resource handling and task scheduling. (Get this, by default the handler is activated in *supervisor* mode!! You really want to long jump out of that!?!?) -- --------------- uunet!tdatirv!sarima (Stanley Friesen)