summaryrefslogtreecommitdiff
path: root/rts/Schedule.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-10-24 09:13:57 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-10-24 09:13:57 +0000
commitab0e778ccfde61aed4c22679b24d175fc6cc9bf3 (patch)
treea0f6148a77644c5a7baa68b521bf3b1116dce50b /rts/Schedule.h
parent2246c514eade324d70058ba3135dc0c51ee9353b (diff)
downloadhaskell-ab0e778ccfde61aed4c22679b24d175fc6cc9bf3.tar.gz
Split GC.c, and move storage manager into sm/ directory
In preparation for parallel GC, split up the monolithic GC.c file into smaller parts. Also in this patch (and difficult to separate, unfortunatley): - Don't include Stable.h in Rts.h, instead just include it where necessary. - consistently use STATIC_INLINE in source files, and INLINE_HEADER in header files. STATIC_INLINE is now turned off when DEBUG is on, to make debugging easier. - The GC no longer takes the get_roots function as an argument. We weren't making use of this generalisation.
Diffstat (limited to 'rts/Schedule.h')
-rw-r--r--rts/Schedule.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/rts/Schedule.h b/rts/Schedule.h
index f82946e831..2afedeec86 100644
--- a/rts/Schedule.h
+++ b/rts/Schedule.h
@@ -191,7 +191,7 @@ void print_bqe (StgBlockingQueueElement *bqe);
* NOTE: tso->link should be END_TSO_QUEUE before calling this macro.
* ASSUMES: cap->running_task is the current task.
*/
-STATIC_INLINE void
+INLINE_HEADER void
appendToRunQueue (Capability *cap, StgTSO *tso)
{
ASSERT(tso->link == END_TSO_QUEUE);
@@ -207,7 +207,7 @@ appendToRunQueue (Capability *cap, StgTSO *tso)
* newly awakened threads, so they get run as soon as possible.
* ASSUMES: cap->running_task is the current task.
*/
-STATIC_INLINE void
+INLINE_HEADER void
pushOnRunQueue (Capability *cap, StgTSO *tso)
{
tso->link = cap->run_queue_hd;
@@ -219,7 +219,7 @@ pushOnRunQueue (Capability *cap, StgTSO *tso)
/* Pop the first thread off the runnable queue.
*/
-STATIC_INLINE StgTSO *
+INLINE_HEADER StgTSO *
popRunQueue (Capability *cap)
{
StgTSO *t = cap->run_queue_hd;
@@ -235,7 +235,7 @@ popRunQueue (Capability *cap)
/* Add a thread to the end of the blocked queue.
*/
#if !defined(THREADED_RTS)
-STATIC_INLINE void
+INLINE_HEADER void
appendToBlockedQueue(StgTSO *tso)
{
ASSERT(tso->link == END_TSO_QUEUE);
@@ -249,7 +249,7 @@ appendToBlockedQueue(StgTSO *tso)
#endif
#if defined(THREADED_RTS)
-STATIC_INLINE void
+INLINE_HEADER void
appendToWakeupQueue (Capability *cap, StgTSO *tso)
{
ASSERT(tso->link == END_TSO_QUEUE);
@@ -264,20 +264,20 @@ appendToWakeupQueue (Capability *cap, StgTSO *tso)
/* Check whether various thread queues are empty
*/
-STATIC_INLINE rtsBool
+INLINE_HEADER rtsBool
emptyQueue (StgTSO *q)
{
return (q == END_TSO_QUEUE);
}
-STATIC_INLINE rtsBool
+INLINE_HEADER rtsBool
emptyRunQueue(Capability *cap)
{
return emptyQueue(cap->run_queue_hd);
}
#if defined(THREADED_RTS)
-STATIC_INLINE rtsBool
+INLINE_HEADER rtsBool
emptyWakeupQueue(Capability *cap)
{
return emptyQueue(cap->wakeup_queue_hd);
@@ -289,7 +289,7 @@ emptyWakeupQueue(Capability *cap)
#define EMPTY_SLEEPING_QUEUE() (emptyQueue(sleeping_queue))
#endif
-STATIC_INLINE rtsBool
+INLINE_HEADER rtsBool
emptyThreadQueues(Capability *cap)
{
return emptyRunQueue(cap)
@@ -301,7 +301,7 @@ emptyThreadQueues(Capability *cap)
#endif /* !IN_STG_CODE */
-STATIC_INLINE void
+INLINE_HEADER void
dirtyTSO (StgTSO *tso)
{
tso->flags |= TSO_DIRTY;