TIP: Click on subject to list as thread! ANSI
echo: cis.os9.68000.osk
to: Bob van der Poel 76510,2203 (X)
from: Mark Wuest 74030,332
date: 1991-09-10 08:21:10
subject: #12151-Intercepts

#: 12164 S12/OS9/68000 (OSK)
    10-Sep-91  08:21:10
Sb: #12151-Intercepts
Fm: Mark Wuest 74030,332
To: Bob van der Poel 76510,2203 (X)

Bob,
 Not all signals are blocked. The last signal you were sent is held (you would
not really say it was queued) and handled on your next time slice. While in the
signal handler, you are still going to submit to the kernel's task switching so
may be in trouble. I would only do a bunch of stuff if I were going to exit().
If you are doing the longjmp() (is this OSK?) to make your code smaller, I
would recommend copying the block to your signal trap or putting it in a
function called , say, cleanup().
 The point is, you may even get switched out ("swapping" has been used here,
but that normally refers to sections of memory getting "swapped" out to the
disk. Few systems need to do this anymore as most uP's support paging. OS9's
kernels do not support either, though they used to talk about a level III that
would.), but will come back to the signal trap where you left off. I am pretty
sure you will not re-enter the trap at the top if there is another signal
pending. Microware would have to answer that one, and when you get their
support desk, they're going to try and talk you out of doing I/O in the trap,
even if you are about to exit.
 You could test this by putting a sleep(0) in a signal trap.
 Mark

SOURCE: compuserve via textfiles.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.