* __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Fri, 30 Jan 1998 21:06:16 +0000 (21:06 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Fri, 30 Jan 1998 21:06:16 +0000 (21:06 +0000)
commitc72cc5fbe440b7806099b41b32b8b8729798a6f2
tree0a482a769a25fc85454fe5d7d5938b0d0353bab0
parent13dc0cae2fab2f8295aa6b6e831795b1e5e377f0
* __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
(SCM_ALLOW_INTS): Added thread switching code before interrupts
get re-enabled.  The important effect of this is that interrupts
are blocked during thread switching so that thread data structures
don't risk getting messed up by an unfortunate signal.
(SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
seems to do more aggressive optimization which actually move
instructions around in these macros in a fatal way.  Therefore:
Introduce Anthony's SCM_FENCE macro!  (And I who thought he was
just superstitious...)
(SCM_TICK): Maybe do a context switch and take care of asyncs.
This macro should be used instead of SCM_ASYNC_TICK since the
latter doesn't do context switches any more.
libguile/__scm.h