projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename rebuild to remake, and define rebuild to "clean; build"
[ghc-hetmet.git]
/
rts
/
Capability.h
diff --git
a/rts/Capability.h
b/rts/Capability.h
index
a2551d0
..
c50fe7f
100644
(file)
--- a/
rts/Capability.h
+++ b/
rts/Capability.h
@@
-89,7
+89,8
@@
struct Capability_ {
#endif
// Per-capability STM-related data
#endif
// Per-capability STM-related data
- StgTVarWaitQueue *free_tvar_wait_queues;
+ StgTVarWatchQueue *free_tvar_watch_queues;
+ StgInvariantCheckQueue *free_invariant_check_queues;
StgTRecChunk *free_trec_chunks;
StgTRecHeader *free_trec_headers;
nat transaction_tokens;
StgTRecChunk *free_trec_chunks;
StgTRecHeader *free_trec_headers;
nat transaction_tokens;
@@
-199,6
+200,10
@@
void waitForCapability (Task *task, Mutex *mutex, Capability **pCap);
// from the one held by the current Task).
//
void wakeupThreadOnCapability (Capability *cap, StgTSO *tso);
// from the one held by the current Task).
//
void wakeupThreadOnCapability (Capability *cap, StgTSO *tso);
+void wakeupThreadOnCapability_lock (Capability *cap, StgTSO *tso);
+
+void migrateThreadToCapability (Capability *cap, StgTSO *tso);
+void migrateThreadToCapability_lock (Capability *cap, StgTSO *tso);
// Wakes up a worker thread on just one Capability, used when we
// need to service some global event.
// Wakes up a worker thread on just one Capability, used when we
// need to service some global event.
@@
-212,7
+217,7
@@
void prodAllCapabilities (void);
// Waits for a capability to drain of runnable threads and workers,
// and then acquires it. Used at shutdown time.
//
// Waits for a capability to drain of runnable threads and workers,
// and then acquires it. Used at shutdown time.
//
-void shutdownCapability (Capability *cap, Task *task);
+void shutdownCapability (Capability *cap, Task *task, rtsBool wait_foreign);
// Attempt to gain control of a Capability if it is free.
//
// Attempt to gain control of a Capability if it is free.
//
@@
-227,6
+232,9
@@
extern void grabCapability (Capability **pCap);
#endif /* !THREADED_RTS */
#endif /* !THREADED_RTS */
+// Free a capability on exit
+void freeCapability (Capability *cap);
+
/* -----------------------------------------------------------------------------
* INLINE functions... private below here
* -------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
* INLINE functions... private below here
* -------------------------------------------------------------------------- */