[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.