diff options
-rw-r--r-- | includes/rts/storage/TSO.h | 1 | ||||
-rw-r--r-- | rts/STM.c | 5 |
2 files changed, 3 insertions, 3 deletions
diff --git a/includes/rts/storage/TSO.h b/includes/rts/storage/TSO.h index e9c2655416..187b6682e0 100644 --- a/includes/rts/storage/TSO.h +++ b/includes/rts/storage/TSO.h @@ -253,6 +253,5 @@ void dirty_STACK (Capability *cap, StgStack *stack); /* this is the NIL ptr for a TSO queue (e.g. runnable queue) */ #define END_TSO_QUEUE ((StgTSO *)(void*)&stg_END_TSO_QUEUE_closure) -#define STM_AWOKEN ((StgTSO *)(void*)&stg_STM_AWOKEN_closure) #endif /* RTS_STORAGE_TSO_H */ @@ -385,11 +385,12 @@ static void unpark_tso(Capability *cap, StgTSO *tso) { // This way we can avoid sending further wakeup messages in the // future. lockTSO(tso); - if (tso->why_blocked == BlockedOnSTM && tso->block_info.closure == STM_AWOKEN) { + if (tso->why_blocked == BlockedOnSTM && + tso->block_info.closure == &stg_STM_AWOKEN_closure) { TRACE("unpark_tso already woken up tso=%p", tso); } else if (tso -> why_blocked == BlockedOnSTM) { TRACE("unpark_tso on tso=%p", tso); - tso->block_info.closure = STM_AWOKEN; + tso->block_info.closure = &stg_STM_AWOKEN_closure; tryWakeupThread(cap,tso); } else { TRACE("spurious unpark_tso on tso=%p", tso); |