home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / os / os9 / 1229 < prev    next >
Encoding:
Internet Message Format  |  1992-09-11  |  2.1 KB

  1. Path: sparky!uunet!mcsun!uknet!siesoft!athen!maxed
  2. From: maxed@athen (Hr. Ahn)
  3. Newsgroups: comp.os.os9
  4. Subject: Re: Strange problem with setjmp()/longjmp() in OS9
  5. Message-ID: <1992Sep11.155208.10492@sinix.UUCP>
  6. Date: 11 Sep 92 15:52:08 GMT
  7. References: <1992Sep9.165549.15410@microware.com>
  8. Sender: news@sinix.UUCP (News Administrator)
  9. Organization: SNI AG Muenchen, STO XS
  10. Lines: 39
  11. X-Newsreader: Tin 1.1 PL5
  12.  
  13. Peter Dibble (dibble@microware.com) wrote:
  14. : I've tried to reproduce the setjmp()/longjmp from a signal
  15. : handler problem.  I can't.
  16.   [-deleted-]: 
  17. : It doesn't fail.  Did I fail to build a test that does the right (wrong) 
  18. : thing? Or is it failing to fail because I'm using the very latest
  19. : (not shipping) kernel... or maybe there's something about
  20. : the MVME167...
  21.  
  22. Yeah, maybe... I'm still running way old version 2.2 of OS-9 and I had
  23. many problems with intercept routines in combination with the cio trap lib.
  24.  
  25. (I wrote my own signal() on top of intercept() to be a bit more unix
  26. compatible and use it in many applications, including those that use
  27. the cio traplib). But when I rewrote the keyboard input routine for jove
  28. (Jonathan's Own Version od Emacs, which is far superior to the shipped
  29. umacs) and used _ss_sig() to trigger the keyboard input to a fifo, I
  30. got nasty garbage characters in the fifo when I used cio (but everything 
  31. worked perfectly fine if I use the normal library).
  32.  
  33. I just thought: perhaps it's the combination of longjmp() with cio?!?
  34.  
  35. Oh yeah, by the way, I had problems with signals + longjmp, too, partly
  36. because the "interrupt cleanup code" of the intercept() handling routine
  37. is never executed when you leave it by longjmp(). So the F$Rte is not
  38. called, and this sends you off somewhere else pretty soon.
  39.  
  40. I had this problem when I tried to compile old bsd uucp (which times out
  41. every 20 seconds and expects to return to some restart point by using
  42. longjmp() from the alarm() routine. [gnuucp doesn't do that, luckily].
  43.  
  44. Hope it helps..
  45.      Martin
  46.  
  47. --
  48. 4     222       Reply to: martin%sd111%athen%unido@mail.Germany.EU.net
  49. 4 4      2
  50. 4444   22
  51.   4   2222
  52.