X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FStorage.c;h=0c9c60e58062538e3ba3535bb3564debffae8aa0;hb=a92db2a52d056ab962e4f55d5d8e3997ac3b8e4f;hp=46db1eefc9e912f078bc64e2cce102b2083128f5;hpb=5a2769f0273dd389977e8283375e7920d183bdd4;p=ghc-hetmet.git diff --git a/rts/Storage.c b/rts/Storage.c index 46db1ee..0c9c60e 100644 --- a/rts/Storage.c +++ b/rts/Storage.c @@ -127,7 +127,7 @@ initStorage( void ) RtsFlags.GcFlags.minAllocAreaSize > RtsFlags.GcFlags.maxHeapSize) { errorBelch("maximum heap size (-M) is smaller than minimum alloc area size (-A)"); - exit(1); + RtsFlags.GcFlags.minAllocAreaSize = RtsFlags.GcFlags.maxHeapSize; } initBlockAllocator(); @@ -273,7 +273,16 @@ exitStorage (void) void freeStorage (void) { + nat g; + + for(g = 0; g < RtsFlags.GcFlags.generations; g++) + stgFree(generations[g].steps); + stgFree(generations); freeAllMBlocks(); +#if defined(THREADED_RTS) + closeMutex(&sm_mutex); + closeMutex(&atomic_modify_mutvar_mutex); +#endif } /* -----------------------------------------------------------------------------