summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-06-09 17:16:17 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-06-09 17:16:17 +0000
commit54fe7a440247fbd0f853d07da23d48b50a229a00 (patch)
treed6a889ed142c72308dbae7bbb5e54dba06be269e
parenta7f2a897bab20f05d4cf5fc8cdae328698c7fc82 (diff)
downloadhaskell-54fe7a440247fbd0f853d07da23d48b50a229a00.tar.gz
threadStackUnderflow: fix up the bd->free pointers in the split blocks
-rw-r--r--rts/Schedule.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c
index c07b21aac1..715517e976 100644
--- a/rts/Schedule.c
+++ b/rts/Schedule.c
@@ -2819,6 +2819,8 @@ threadStackUnderflow (Task *task STG_UNUSED, StgTSO *tso)
bd = Bdescr((StgPtr)tso);
new_bd = splitLargeBlock(bd, new_tso_size_w / BLOCK_SIZE_W);
+ new_bd->free = bd->free;
+ bd->free = bd->start + TSO_STRUCT_SIZEW;
new_tso = (StgTSO *)new_bd->start;
memcpy(new_tso,tso,TSO_STRUCT_SIZE);