projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove a redundant options pragma
[ghc-hetmet.git]
/
rts
/
HeapStackCheck.cmm
diff --git
a/rts/HeapStackCheck.cmm
b/rts/HeapStackCheck.cmm
index
753e671
..
3980ca2
100644
(file)
--- a/
rts/HeapStackCheck.cmm
+++ b/
rts/HeapStackCheck.cmm
@@
-15,6
+15,8
@@
#ifdef __PIC__
import pthread_mutex_unlock;
#endif
#ifdef __PIC__
import pthread_mutex_unlock;
#endif
+import EnterCriticalSection;
+import LeaveCriticalSection;
/* Stack/Heap Check Failure
* ------------------------
/* Stack/Heap Check Failure
* ------------------------
@@
-64,7
+66,7
@@
import pthread_mutex_unlock;
CLOSE_NURSERY(); \
CurrentNursery = bdescr_link(CurrentNursery); \
OPEN_NURSERY(); \
CLOSE_NURSERY(); \
CurrentNursery = bdescr_link(CurrentNursery); \
OPEN_NURSERY(); \
- if (CInt[context_switch] != 0 :: CInt) { \
+ if (Capability_context_switch(MyCapability()) != 0 :: CInt) { \
R1 = ThreadYielding; \
goto sched; \
} else { \
R1 = ThreadYielding; \
goto sched; \
} else { \
@@
-825,7
+827,9
@@
INFO_TABLE_RET( stg_block_takemvar, RET_SMALL, "ptr" W_ unused )
stg_block_takemvar_finally
{
#ifdef THREADED_RTS
stg_block_takemvar_finally
{
#ifdef THREADED_RTS
- unlockClosure(R3, stg_EMPTY_MVAR_info);
+ unlockClosure(R3, stg_MVAR_DIRTY_info);
+#else
+ SET_INFO(R3, stg_MVAR_DIRTY_info);
#endif
jump StgReturn;
}
#endif
jump StgReturn;
}
@@
-851,7
+855,9
@@
INFO_TABLE_RET( stg_block_putmvar, RET_SMALL, "ptr" W_ unused1, "ptr" W_ unused2
stg_block_putmvar_finally
{
#ifdef THREADED_RTS
stg_block_putmvar_finally
{
#ifdef THREADED_RTS
- unlockClosure(R3, stg_FULL_MVAR_info);
+ unlockClosure(R3, stg_MVAR_DIRTY_info);
+#else
+ SET_INFO(R3, stg_MVAR_DIRTY_info);
#endif
jump StgReturn;
}
#endif
jump StgReturn;
}