diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-06-09 17:16:17 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-06-09 17:16:17 +0000 |
commit | 54fe7a440247fbd0f853d07da23d48b50a229a00 (patch) | |
tree | d6a889ed142c72308dbae7bbb5e54dba06be269e | |
parent | a7f2a897bab20f05d4cf5fc8cdae328698c7fc82 (diff) | |
download | haskell-54fe7a440247fbd0f853d07da23d48b50a229a00.tar.gz |
threadStackUnderflow: fix up the bd->free pointers in the split blocks
-rw-r--r-- | rts/Schedule.c | 2 |
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); |