Use scheduleExtThread() (see
20020214 commit msg for SchedAPI.h for details)
/* ----------------------------------------------------------------------------
/* ----------------------------------------------------------------------------
- * $Id: RtsAPI.c,v 1.32 2002/02/13 08:48:06 sof Exp $
+ * $Id: RtsAPI.c,v 1.33 2002/02/15 07:40:10 sof Exp $
*
* (c) The GHC Team, 1998-2001
*
*
* (c) The GHC Team, 1998-2001
*
#include "Schedule.h"
#if defined(THREADED_RTS)
#include "Schedule.h"
#if defined(THREADED_RTS)
-#define SCHEDULE_MAIN_THREAD(tso) scheduleThread_(tso,rtsFalse)
#define WAIT_MAIN_THREAD(tso,ret) waitThread_(tso,ret,rtsFalse)
#else
#define WAIT_MAIN_THREAD(tso,ret) waitThread_(tso,ret,rtsFalse)
#else
-#define SCHEDULE_MAIN_THREAD(tso) scheduleThread(tso)
#define WAIT_MAIN_THREAD(tso,ret) waitThread(tso,ret)
#endif
#define WAIT_MAIN_THREAD(tso,ret) waitThread(tso,ret)
#endif
tso = createGenThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
tso = createGenThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
+ scheduleExtThread(tso);
return waitThread(tso, ret);
}
return waitThread(tso, ret);
}
tso = createGenThread(stack_size, p);
releaseAllocLock();
tso = createGenThread(stack_size, p);
releaseAllocLock();
+ scheduleExtThread(tso);
return waitThread(tso, ret);
}
return waitThread(tso, ret);
}
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
+ scheduleExtThread(tso);
return waitThread(tso, ret);
}
return waitThread(tso, ret);
}
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
- SCHEDULE_MAIN_THREAD(tso);
return WAIT_MAIN_THREAD(tso, ret);
}
return WAIT_MAIN_THREAD(tso, ret);
}
p = (StgClosure *)deRefStablePtr(s);
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
p = (StgClosure *)deRefStablePtr(s);
tso = createStrictIOThread(RtsFlags.GcFlags.initialStkSize, p);
releaseAllocLock();
+ scheduleExtThread(tso);
stat = waitThread(tso, &r);
if (stat == Success) {
stat = waitThread(tso, &r);
if (stat == Success) {
tso = createIOThread(stack_size, p);
releaseAllocLock();
tso = createIOThread(stack_size, p);
releaseAllocLock();
+ scheduleExtThread(tso);
return waitThread(tso, ret);
}
return waitThread(tso, ret);
}