From b3ff8a4ed1465034aba33490af69d24a8f295c09 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Fri, 29 May 2009 09:08:27 +0000 Subject: don't shrink the stack smaller than the value set by +RTS -k --- rts/Schedule.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'rts/Schedule.c') diff --git a/rts/Schedule.c b/rts/Schedule.c index f376286a80..66860a758b 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -2442,6 +2442,8 @@ threadStackUnderflow (Task *task STG_UNUSED, StgTSO *tso) (tso_size_w - BLOCKS_PER_MBLOCK*BLOCK_SIZE_W) % MBLOCK_SIZE_W != 0 || // or TSO is not a whole number of megablocks (ensuring // precondition of splitLargeBlock() below) + (tso_size_w <= round_up_to_mblocks(RtsFlags.GcFlags.initialStkSize)) || + // or TSO is smaller than the minimum stack size (rounded up) (nat)(tso->stack + tso->stack_size - tso->sp) > tso->stack_size / 4) // or stack is using more than 1/4 of the available space { -- cgit v1.2.1