diff options
Diffstat (limited to 'rts/SMPClosureOps.h')
-rw-r--r-- | rts/SMPClosureOps.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/rts/SMPClosureOps.h b/rts/SMPClosureOps.h index c73821a782..3191a8c600 100644 --- a/rts/SMPClosureOps.h +++ b/rts/SMPClosureOps.h @@ -119,9 +119,8 @@ tryLockClosure(StgClosure *p) EXTERN_INLINE void unlockClosure(StgClosure *p, const StgInfoTable *info) { - // This is a strictly ordered write, so we need a write_barrier(): - write_barrier(); - p->header.info = info; + // This is a strictly ordered write, so we need a RELEASE ordering. + RELEASE_STORE(&p->header.info, info); } #endif /* CMINUSMINUS */ |