/* actually perform the putMVar for the thread that we just woke up */
tso = StgMVar_head(mvar);
PerformPut(tso,StgMVar_value(mvar));
+ foreign "C" dirtyTSO(tso "ptr") [];
#if defined(GRAN) || defined(PAR)
/* ToDo: check 2nd arg (mvar) is right */
/* actually perform the putMVar for the thread that we just woke up */
tso = StgMVar_head(mvar);
PerformPut(tso,StgMVar_value(mvar));
+ foreign "C" dirtyTSO(tso "ptr") [];
#if defined(GRAN) || defined(PAR)
/* ToDo: check 2nd arg (mvar) is right */
/* actually perform the takeMVar */
tso = StgMVar_head(mvar);
PerformTake(tso, R2);
+ foreign "C" dirtyTSO(tso "ptr") [];
#if defined(GRAN) || defined(PAR)
/* ToDo: check 2nd arg (mvar) is right */
/* actually perform the takeMVar */
tso = StgMVar_head(mvar);
PerformTake(tso, R2);
+ foreign "C" dirtyTSO(tso "ptr") [];
#if defined(GRAN) || defined(PAR)
/* ToDo: check 2nd arg (mvar) is right */
;
}
-STATIC_INLINE void
-dirtyTSO (StgTSO *tso)
-{
- tso->flags |= TSO_DIRTY;
-}
-
#ifdef DEBUG
void sched_belch(char *s, ...)
GNU_ATTRIBUTE(format (printf, 1, 2));
#endif /* !IN_STG_CODE */
+STATIC_INLINE void
+dirtyTSO (StgTSO *tso)
+{
+ tso->flags |= TSO_DIRTY;
+}
+
#endif /* SCHEDULE_H */