X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FGC.c;h=c0e1a4aaa3c5cab979bd42a92c8a73a89ac4ab92;hb=29e55dea299569979d4e73d64b709a97aaea36e8;hp=6b8bd3df90a6716e042b7a31d5127c2830ac56a2;hpb=fd8cd97866a21d610488b15581036e803795d88c;p=ghc-hetmet.git diff --git a/ghc/rts/GC.c b/ghc/rts/GC.c index 6b8bd3d..c0e1a4a 100644 --- a/ghc/rts/GC.c +++ b/ghc/rts/GC.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: GC.c,v 1.141 2002/09/10 10:43:52 simonmar Exp $ + * $Id: GC.c,v 1.143 2002/09/18 06:34:07 mthomas Exp $ * * (c) The GHC Team 1998-1999 * @@ -27,6 +27,7 @@ #include "Prelude.h" #include "ParTicky.h" // ToDo: move into Rts.h #include "GCCompact.h" +#include "Signals.h" #if defined(GRAN) || defined(PAR) # include "GranSimRts.h" # include "ParallelRts.h" @@ -249,6 +250,11 @@ GarbageCollect ( void (*get_roots)(evac_fn), rtsBool force_major_gc ) Now, Now)); #endif +#ifndef mingw32_TARGET_OS + // block signals + blockUserSignals(); +#endif + // tell the stats department that we've started a GC stat_startGC(); @@ -1030,6 +1036,11 @@ GarbageCollect ( void (*get_roots)(evac_fn), rtsBool force_major_gc ) // ok, GC over: tell the stats department what happened. stat_endGC(allocated, collected, live, copied, N); +#ifndef mingw32_TARGET_OS + // unblock signals again + unblockUserSignals(); +#endif + //PAR_TICKY_TP(); }