projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TAG HEAD merge 6 Aug 06 completed
[ghc-hetmet.git]
/
rts
/
Schedule.c
diff --git
a/rts/Schedule.c
b/rts/Schedule.c
index
11b9f87
..
585ddec
100644
(file)
--- a/
rts/Schedule.c
+++ b/
rts/Schedule.c
@@
-535,11
+535,11
@@
schedule (Capability *initialCapability, Task *task)
if (bound) {
if (bound == task) {
debugTrace(DEBUG_sched,
if (bound) {
if (bound == task) {
debugTrace(DEBUG_sched,
- "### Running thread %d in bound thread", t->id);
+ "### Running thread %lu in bound thread", (unsigned long)t->id);
// yes, the Haskell thread is bound to the current native thread
} else {
debugTrace(DEBUG_sched,
// yes, the Haskell thread is bound to the current native thread
} else {
debugTrace(DEBUG_sched,
- "### thread %d bound to another OS thread", t->id);
+ "### thread %lu bound to another OS thread", (unsigned long)t->id);
// no, bound to a different Haskell thread: pass to that thread
pushOnRunQueue(cap,t);
continue;
// no, bound to a different Haskell thread: pass to that thread
pushOnRunQueue(cap,t);
continue;
@@
-548,7
+548,7
@@
schedule (Capability *initialCapability, Task *task)
// The thread we want to run is unbound.
if (task->tso) {
debugTrace(DEBUG_sched,
// The thread we want to run is unbound.
if (task->tso) {
debugTrace(DEBUG_sched,
- "### this OS thread cannot run thread %d", t->id);
+ "### this OS thread cannot run thread %lu", (unsigned long)t->id);
// no, the current native thread is bound to a different
// Haskell thread, so pass it to any worker thread
pushOnRunQueue(cap,t);
// no, the current native thread is bound to a different
// Haskell thread, so pass it to any worker thread
pushOnRunQueue(cap,t);
@@
-649,8
+649,8
@@
run_thread:
// immediately and return to normaility.
if (ret == ThreadBlocked) {
debugTrace(DEBUG_sched,
// immediately and return to normaility.
if (ret == ThreadBlocked) {
debugTrace(DEBUG_sched,
- "--<< thread %d (%s) stopped: blocked",
- t->id, whatNext_strs[t->what_next]);
+ "--<< thread %lu (%s) stopped: blocked",
+ (unsigned long)t->id, whatNext_strs[t->what_next]);
continue;
}
#endif
continue;
}
#endif
@@
-812,7
+812,7
@@
schedulePushWork(Capability *cap USED_IF_THREADS,
prev->link = t;
prev = t;
} else {
prev->link = t;
prev = t;
} else {
- debugTrace(DEBUG_sched, "pushing thread %d to capability %d", t->id, free_caps[i]->no);
+ debugTrace(DEBUG_sched, "pushing thread %lu to capability %d", (unsigned long)t->id, free_caps[i]->no);
appendToRunQueue(free_caps[i],t);
if (t->bound) { t->bound->cap = free_caps[i]; }
t->cap = free_caps[i];
appendToRunQueue(free_caps[i],t);
if (t->bound) { t->bound->cap = free_caps[i]; }
t->cap = free_caps[i];
@@
-1780,8
+1780,8
@@
scheduleHandleThreadBlocked( StgTSO *t
#ifdef DEBUG
if (traceClass(DEBUG_sched)) {
#ifdef DEBUG
if (traceClass(DEBUG_sched)) {
- debugTraceBegin("--<< thread %d (%s) stopped: ",
- t->id, whatNext_strs[t->what_next]);
+ debugTraceBegin("--<< thread %lu (%s) stopped: ",
+ (unsigned long)t->id, whatNext_strs[t->what_next]);
printThreadBlockage(t);
debugTraceEnd();
}
printThreadBlockage(t);
debugTraceEnd();
}
@@
-1807,8
+1807,8
@@
scheduleHandleThreadFinished (Capability *cap STG_UNUSED, Task *task, StgTSO *t)
* We also end up here if the thread kills itself with an
* uncaught exception, see Exception.cmm.
*/
* We also end up here if the thread kills itself with an
* uncaught exception, see Exception.cmm.
*/
- debugTrace(DEBUG_sched, "--++ thread %d (%s) finished",
- t->id, whatNext_strs[t->what_next]);
+ debugTrace(DEBUG_sched, "--++ thread %lu (%s) finished",
+ (unsigned long)t->id, whatNext_strs[t->what_next]);
#if defined(GRAN)
endThread(t, CurrentProc); // clean-up the thread
#if defined(GRAN)
endThread(t, CurrentProc); // clean-up the thread
@@
-2294,8
+2294,8
@@
suspendThread (StgRegTable *reg)
tso = cap->r.rCurrentTSO;
debugTrace(DEBUG_sched,
tso = cap->r.rCurrentTSO;
debugTrace(DEBUG_sched,
- "thread %d did a safe foreign call",
- cap->r.rCurrentTSO->id);
+ "thread %lu did a safe foreign call",
+ (unsigned long)cap->r.rCurrentTSO->id);
// XXX this might not be necessary --SDM
tso->what_next = ThreadRunGHC;
// XXX this might not be necessary --SDM
tso->what_next = ThreadRunGHC;
@@
-2325,7
+2325,7
@@
suspendThread (StgRegTable *reg)
/* Preparing to leave the RTS, so ensure there's a native thread/task
waiting to take over.
*/
/* Preparing to leave the RTS, so ensure there's a native thread/task
waiting to take over.
*/
- debugTrace(DEBUG_sched, "thread %d: leaving RTS", tso->id);
+ debugTrace(DEBUG_sched, "thread %lu: leaving RTS", (unsigned long)tso->id);
#endif
errno = saved_errno;
#endif
errno = saved_errno;
@@
-2353,7
+2353,7
@@
resumeThread (void *task_)
tso = task->suspended_tso;
task->suspended_tso = NULL;
tso->link = END_TSO_QUEUE;
tso = task->suspended_tso;
task->suspended_tso = NULL;
tso->link = END_TSO_QUEUE;
- debugTrace(DEBUG_sched, "thread %d: re-entering RTS", tso->id);
+ debugTrace(DEBUG_sched, "thread %lu: re-entering RTS", (unsigned long)tso->id);
if (tso->why_blocked == BlockedOnCCall) {
awakenBlockedExceptionQueue(cap,tso);
if (tso->why_blocked == BlockedOnCCall) {
awakenBlockedExceptionQueue(cap,tso);
@@
-2429,7
+2429,7
@@
scheduleWaitThread (StgTSO* tso, /*[out]*/HaskellObj* ret, Capability *cap)
appendToRunQueue(cap,tso);
appendToRunQueue(cap,tso);
- debugTrace(DEBUG_sched, "new bound thread (%d)", tso->id);
+ debugTrace(DEBUG_sched, "new bound thread (%lu)", (unsigned long)tso->id);
#if defined(GRAN)
/* GranSim specific init */
#if defined(GRAN)
/* GranSim specific init */
@@
-2443,7
+2443,7
@@
scheduleWaitThread (StgTSO* tso, /*[out]*/HaskellObj* ret, Capability *cap)
ASSERT(task->stat != NoStatus);
ASSERT_FULL_CAPABILITY_INVARIANTS(cap,task);
ASSERT(task->stat != NoStatus);
ASSERT_FULL_CAPABILITY_INVARIANTS(cap,task);
- debugTrace(DEBUG_sched, "bound thread (%d) finished", task->tso->id);
+ debugTrace(DEBUG_sched, "bound thread (%lu) finished", (unsigned long)task->tso->id);
return cap;
}
return cap;
}
@@
-2509,9
+2509,6
@@
initScheduler(void)
context_switch = 0;
sched_state = SCHED_RUNNING;
context_switch = 0;
sched_state = SCHED_RUNNING;
- RtsFlags.ConcFlags.ctxtSwitchTicks =
- RtsFlags.ConcFlags.ctxtSwitchTime / TICK_MILLISECS;
-
#if defined(THREADED_RTS)
/* Initialise the mutex and condition variables used by
* the scheduler. */
#if defined(THREADED_RTS)
/* Initialise the mutex and condition variables used by
* the scheduler. */
@@
-2584,6
+2581,7
@@
exitScheduler( void )
boundTaskExiting(task);
stopTaskManager();
}
boundTaskExiting(task);
stopTaskManager();
}
+ closeMutex(&sched_mutex);
#endif
}
#endif
}
@@
-2640,7
+2638,7
@@
GetRoots( evac_fn evac )
for (task = cap->suspended_ccalling_tasks; task != NULL;
task=task->next) {
debugTrace(DEBUG_sched,
for (task = cap->suspended_ccalling_tasks; task != NULL;
task=task->next) {
debugTrace(DEBUG_sched,
- "evac'ing suspended TSO %d", task->suspended_tso->id);
+ "evac'ing suspended TSO %lu", (unsigned long)task->suspended_tso->id);
evac((StgClosure **)(void *)&task->suspended_tso);
}
evac((StgClosure **)(void *)&task->suspended_tso);
}
@@
-3102,7
+3100,7
@@
resurrectThreads (StgTSO *threads)
next = tso->global_link;
tso->global_link = all_threads;
all_threads = tso;
next = tso->global_link;
tso->global_link = all_threads;
all_threads = tso;
- debugTrace(DEBUG_sched, "resurrecting thread %d", tso->id);
+ debugTrace(DEBUG_sched, "resurrecting thread %lu", (unsigned long)tso->id);
// Wake up the thread on the Capability it was last on
cap = tso->cap;
// Wake up the thread on the Capability it was last on
cap = tso->cap;