diff options
Diffstat (limited to 'rts/RaiseAsync.c')
-rw-r--r-- | rts/RaiseAsync.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c index b71e126f04..bb244d883d 100644 --- a/rts/RaiseAsync.c +++ b/rts/RaiseAsync.c @@ -282,7 +282,13 @@ check_target: // ASSUMPTION: tso->block_info must always point to a // closure. In the threaded RTS it does. - if (get_itbl(mvar)->type != MVAR) goto retry; + switch (get_itbl(mvar)->type) { + case MVAR_CLEAN: + case MVAR_DIRTY: + break; + default: + goto retry; + } info = lockClosure((StgClosure *)mvar); |