X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FSMPClosureOps.h;h=f46dbdefe8e7d4e9624bece53d2726e4663824cc;hb=b547f2e28b0f07b089aada1164c1dd834f894996;hp=a43222d232059bc1724d51b4b0801ce226cc7090;hpb=24ad9cf0325bb5fedc9f0ca8bd70f78096d8d326;p=ghc-hetmet.git diff --git a/includes/SMPClosureOps.h b/includes/SMPClosureOps.h index a43222d..f46dbde 100644 --- a/includes/SMPClosureOps.h +++ b/includes/SMPClosureOps.h @@ -9,6 +9,14 @@ #ifndef SMPCLOSUREOPS_H #define SMPCLOSUREOPS_H +#ifdef CMINUSMINUS + +#define unlockClosure(ptr,info) \ + prim %write_barrier() []; \ + StgHeader_info(ptr) = info; + +#else + EXTERN_INLINE StgInfoTable *lockClosure(StgClosure *p); EXTERN_INLINE void unlockClosure(StgClosure *p, const StgInfoTable *info); @@ -65,4 +73,6 @@ EXTERN_INLINE void unlockTSO(StgTSO *tso); EXTERN_INLINE void unlockTSO(StgTSO *tso) { unlockClosure((StgClosure*)tso, (const StgInfoTable *)&stg_TSO_info); } +#endif /* CMINUSMINUS */ + #endif /* SMPCLOSUREOPS_H */