[MLton] cvs commit: restructure of signal handling
Matthew Fluet
fluet@cs.cornell.edu
Wed, 28 Apr 2004 23:12:10 -0400 (EDT)
> The enter/leave functions of gc.c are also modified to treat runtime
> functions as running in a critical section (i.e., with canHandle++ in
> enter and canHandle-- in leave); this prevents limit from being
> modified while in the runtime. If a signal is caught on the C side
> while in the GC, the limit will be reset to 0 during leave.
Of course, since signals can be caught on the C side while in the runtime,
it only makes sense to reset the limit when not in the ML signal
handler.