diff options
author | Reid Barton <rwbarton@gmail.com> | 2016-02-29 17:35:43 -0500 |
---|---|---|
committer | Reid Barton <rwbarton@gmail.com> | 2016-02-29 17:35:43 -0500 |
commit | 0fd5db798e31912f335e4553e939e1e783284495 (patch) | |
tree | 43f1d3c8466b7e4276dfb3bb25e2a1839d7265f8 /rts/ThreadPaused.c | |
parent | 49c55e68aae9841c166430ae566b0d9bdc03c99d (diff) | |
download | haskell-wip/rwbarton-tiny-tables.tar.gz |
Experiment with one-byte info tableswip/rwbarton-tiny-tables
Diffstat (limited to 'rts/ThreadPaused.c')
-rw-r--r-- | rts/ThreadPaused.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/rts/ThreadPaused.c b/rts/ThreadPaused.c index 1f1d0afe58..e0e616aec4 100644 --- a/rts/ThreadPaused.c +++ b/rts/ThreadPaused.c @@ -219,6 +219,14 @@ threadPaused(Capability *cap, StgTSO *tso) frame = (StgClosure *)tso->stackobj->sp; while ((P_)frame < stack_end) { + if (*(P_)frame & 1) { + nat frame_size = stack_frame_sizeW(frame); + weight_pending += frame_size; + frame = (StgClosure *)((StgPtr)frame + frame_size); + prev_was_update_frame = rtsFalse; + continue; + } + info = get_ret_itbl(frame); switch (info->i.type) { |