if (advisory_thread_count < RTSflags.ConcFlags.maxThreads &&
(PendingSparksHd[REQUIRED_POOL] < PendingSparksTl[REQUIRED_POOL] ||
PendingSparksHd[ADVISORY_POOL] < PendingSparksTl[ADVISORY_POOL])) {
if (advisory_thread_count < RTSflags.ConcFlags.maxThreads &&
(PendingSparksHd[REQUIRED_POOL] < PendingSparksTl[REQUIRED_POOL] ||
PendingSparksHd[ADVISORY_POOL] < PendingSparksTl[ADVISORY_POOL])) {
(TimeOfNextEvent == 0 ||
TSO_CLOCK(TSO_LINK(ThreadQueueHd))+1000<TimeOfNextEvent)) {
new_event(CurrentProc,CurrentProc,TSO_CLOCK(TSO_LINK(ThreadQueueHd))+1000,
(TimeOfNextEvent == 0 ||
TSO_CLOCK(TSO_LINK(ThreadQueueHd))+1000<TimeOfNextEvent)) {
new_event(CurrentProc,CurrentProc,TSO_CLOCK(TSO_LINK(ThreadQueueHd))+1000,
- CONTINUETHREAD,TSO_LINK(ThreadQueueHd),Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,TSO_LINK(ThreadQueueHd),PrelBase_Z91Z93_closure,NULL);
- if (CurrentTSO == Prelude_Z91Z93_closure) {
- fprintf(stderr,"Qagh: Trying to execute Prelude_Z91Z93_closure on proc %d (@ %d)\n",
+ if (CurrentTSO == PrelBase_Z91Z93_closure) {
+ fprintf(stderr,"Qagh: Trying to execute PrelBase_Z91Z93_closure on proc %d (@ %d)\n",
{
/* A bit of a hassle if the event queue is empty, but ... */
CurrentTSO = ThreadQueueHd;
resched = rtsFalse;
if (RTSflags.GranFlags.Light &&
{
/* A bit of a hassle if the event queue is empty, but ... */
CurrentTSO = ThreadQueueHd;
resched = rtsFalse;
if (RTSflags.GranFlags.Light &&
TSO_CLOCK(ThreadQueueHd)>TSO_CLOCK(TSO_LINK(ThreadQueueHd))) {
if(RTSflags.GranFlags.granSimStats &&
RTSflags.GranFlags.debug & 0x20000 )
DumpGranEvent(GR_DESCHEDULE,ThreadQueueHd);
resched = rtsTrue;
ThreadQueueHd = TSO_LINK(CurrentTSO);
TSO_CLOCK(ThreadQueueHd)>TSO_CLOCK(TSO_LINK(ThreadQueueHd))) {
if(RTSflags.GranFlags.granSimStats &&
RTSflags.GranFlags.debug & 0x20000 )
DumpGranEvent(GR_DESCHEDULE,ThreadQueueHd);
resched = rtsTrue;
ThreadQueueHd = TSO_LINK(CurrentTSO);
- if (ThreadQueueHd==Prelude_Z91Z93_closure)
- ThreadQueueTl=Prelude_Z91Z93_closure;
- TSO_LINK(CurrentTSO) = Prelude_Z91Z93_closure;
+ if (ThreadQueueHd==PrelBase_Z91Z93_closure)
+ ThreadQueueTl=PrelBase_Z91Z93_closure;
+ TSO_LINK(CurrentTSO) = PrelBase_Z91Z93_closure;
InsertThread(CurrentTSO);
}
/* This code does round-Robin, if preferred. */
if(!RTSflags.GranFlags.Light &&
RTSflags.GranFlags.DoFairSchedule &&
InsertThread(CurrentTSO);
}
/* This code does round-Robin, if preferred. */
if(!RTSflags.GranFlags.Light &&
RTSflags.GranFlags.DoFairSchedule &&
CurrentTime[CurrentProc]>=EndOfTimeSlice)
{
ThreadQueueHd = TSO_LINK(CurrentTSO);
TSO_LINK(ThreadQueueTl) = CurrentTSO;
ThreadQueueTl = CurrentTSO;
CurrentTime[CurrentProc]>=EndOfTimeSlice)
{
ThreadQueueHd = TSO_LINK(CurrentTSO);
TSO_LINK(ThreadQueueTl) = CurrentTSO;
ThreadQueueTl = CurrentTSO;
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_threadcontextswitchtime;
if ( RTSflags.GranFlags.granSimStats )
DumpGranEvent(GR_SCHEDULE,ThreadQueueHd);
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_threadcontextswitchtime;
if ( RTSflags.GranFlags.granSimStats )
DumpGranEvent(GR_SCHEDULE,ThreadQueueHd);
}
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
}
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- CONTINUETHREAD,CurrentTSO,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,CurrentTSO,PrelBase_Z91Z93_closure,NULL);
}
/* Schedule `next thread' which is at ThreadQueueHd now i.e. thread queue */
/* has been updated before that already. */
}
/* Schedule `next thread' which is at ThreadQueueHd now i.e. thread queue */
/* has been updated before that already. */
{
# if defined(GRAN_CHECK) && defined(GRAN)
fprintf(stderr,"Qagh: ReSchedule(NEW_THREAD) shouldn't be used with DoReScheduleOnFetch!!\n");
{
# if defined(GRAN_CHECK) && defined(GRAN)
fprintf(stderr,"Qagh: ReSchedule(NEW_THREAD) shouldn't be used with DoReScheduleOnFetch!!\n");
CurrentTSO = ThreadQueueHd;
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
CurrentTSO = ThreadQueueHd;
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- CONTINUETHREAD,CurrentTSO,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,CurrentTSO,PrelBase_Z91Z93_closure,NULL);
procStatus[CurrentProc] = Idle;
/* That's now done in HandleIdlePEs!
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
procStatus[CurrentProc] = Idle;
/* That's now done in HandleIdlePEs!
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- FINDWORK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,NULL);
+ FINDWORK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,NULL);
{
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
{
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- FINDWORK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,NULL);
+ FINDWORK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,NULL);
if (!RTSflags.GranFlags.DoReScheduleOnFetch) { /* head of queue is next thread */
P_ tso = RunnableThreadsHd[proc]; /* awaken next thread */
if (!RTSflags.GranFlags.DoReScheduleOnFetch) { /* head of queue is next thread */
P_ tso = RunnableThreadsHd[proc]; /* awaken next thread */
new_event(proc,proc,CurrentTime[proc],
new_event(proc,proc,CurrentTime[proc],
- CONTINUETHREAD,tso,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,tso,PrelBase_Z91Z93_closure,NULL);
CurrentTime[proc] += RTSflags.GranFlags.gran_threadcontextswitchtime;
if(RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(proc,CurrentProc,GR_SCHEDULE,tso,
CurrentTime[proc] += RTSflags.GranFlags.gran_threadcontextswitchtime;
if(RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(proc,CurrentProc,GR_SCHEDULE,tso,
TSO_BLOCKTIME(tso) += CurrentTime[proc] - TSO_BLOCKEDAT(tso);
/* No costs for contextswitch or thread queueing in this case */
if(RTSflags.GranFlags.granSimStats)
TSO_BLOCKTIME(tso) += CurrentTime[proc] - TSO_BLOCKEDAT(tso);
/* No costs for contextswitch or thread queueing in this case */
if(RTSflags.GranFlags.granSimStats)
- DumpRawGranEvent(proc,CurrentProc,GR_RESUME,tso, Prelude_Z91Z93_closure,0);
+ DumpRawGranEvent(proc,CurrentProc,GR_RESUME,tso, PrelBase_Z91Z93_closure,0);
new_event(proc,proc,CurrentTime[proc],CONTINUETHREAD,tso,node,NULL);
} else {
/* Reschedule on fetch causes additional costs here: */
new_event(proc,proc,CurrentTime[proc],CONTINUETHREAD,tso,node,NULL);
} else {
/* Reschedule on fetch causes additional costs here: */
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_munpacktime;
if (RTSflags.GranFlags.granSimStats_Sparks)
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_munpacktime;
if (RTSflags.GranFlags.granSimStats_Sparks)
- DumpRawGranEvent(CurrentProc,(PROC)0,SP_ACQUIRED,Prelude_Z91Z93_closure,
+ DumpRawGranEvent(CurrentProc,(PROC)0,SP_ACQUIRED,PrelBase_Z91Z93_closure,
#if 0
/* Now FINDWORK is created in HandleIdlePEs */
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
#if 0
/* Now FINDWORK is created in HandleIdlePEs */
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- FINDWORK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,NULL);
+ FINDWORK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,NULL);
- DumpRawGranEvent(CurrentProc,(PROC)0,SP_PRUNED,Prelude_Z91Z93_closure,
+ DumpRawGranEvent(CurrentProc,(PROC)0,SP_PRUNED,PrelBase_Z91Z93_closure,
spark, node,SPARK_NAME(spark));
# endif
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc]+1,
spark, node,SPARK_NAME(spark));
# endif
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc]+1,
- FINDWORK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,NULL);
+ FINDWORK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,NULL);
ReallyPerformThreadGC(TSO_HS+TSO_CTS_SIZE,rtsFalse);
SAVE_Hp -= TSO_HS+TSO_CTS_SIZE;
spark = NULL;
ReallyPerformThreadGC(TSO_HS+TSO_CTS_SIZE,rtsFalse);
SAVE_Hp -= TSO_HS+TSO_CTS_SIZE;
spark = NULL;
- DumpRawGranEvent(CurrentProc,(PROC)0,SP_USED,Prelude_Z91Z93_closure,
+ DumpRawGranEvent(CurrentProc,(PROC)0,SP_USED,PrelBase_Z91Z93_closure,
else
/* ut'lu'Qo' ; Don't think that's necessary any more -- HWL
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
else
/* ut'lu'Qo' ; Don't think that's necessary any more -- HWL
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- CONTINUETHREAD,ThreadQueueHd,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,ThreadQueueHd,PrelBase_Z91Z93_closure,NULL);
RunnableThreadsTl = CurrentTSO;
TSO_LINK(CurrentTSO) = RunnableThreadsHd;
RunnableThreadsHd = CurrentTSO;
RunnableThreadsTl = CurrentTSO;
TSO_LINK(CurrentTSO) = RunnableThreadsHd;
RunnableThreadsHd = CurrentTSO;
* in all the time. This makes sure that we don't access saved registers,
* etc. in threads which are supposed to be sleeping.
*/
* in all the time. This makes sure that we don't access saved registers,
* etc. in threads which are supposed to be sleeping.
*/
if (SHOULD_SPARK(spark)) {
if ((tso = NewThread(spark, T_REQUIRED)) == NULL)
break;
if (SHOULD_SPARK(spark)) {
if ((tso = NewThread(spark, T_REQUIRED)) == NULL)
break;
/* In the parallel world, don't create advisory threads if we are
* about to rerun the same thread, or already have runnable threads,
* or the main thread has terminated */
/* In the parallel world, don't create advisory threads if we are
* about to rerun the same thread, or already have runnable threads,
* or the main thread has terminated */
(required_thread_count == 0 && IAmMainThread)) ||
#endif
advisory_thread_count == RTSflags.ConcFlags.maxThreads ||
(tso = NewThread(spark, T_ADVISORY)) == NULL)
break;
advisory_thread_count++;
(required_thread_count == 0 && IAmMainThread)) ||
#endif
advisory_thread_count == RTSflags.ConcFlags.maxThreads ||
(tso = NewThread(spark, T_ADVISORY)) == NULL)
break;
advisory_thread_count++;
- for (len = 0, prev = Prelude_Z91Z93_closure, next = RunnableThreadsHd[proc];
- next != Prelude_Z91Z93_closure;
+ for (len = 0, prev = PrelBase_Z91Z93_closure, next = RunnableThreadsHd[proc];
+ next != PrelBase_Z91Z93_closure;
{
CurrentTSO = ThreadQueueHd = ThreadQueueTl = tso;
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_threadqueuetime;
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
{
CurrentTSO = ThreadQueueHd = ThreadQueueTl = tso;
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_threadqueuetime;
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- CONTINUETHREAD,tso,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,tso,PrelBase_Z91Z93_closure,NULL);
if(RTSflags.GranFlags.granSimStats &&
!( (event_type == GR_START || event_type == GR_STARTQ) && RTSflags.GranFlags.labelling) )
if(RTSflags.GranFlags.granSimStats &&
!( (event_type == GR_START || event_type == GR_STARTQ) && RTSflags.GranFlags.labelling) )
/* If only one thread in queue so far we emit DESCHEDULE in debug mode */
if(RTSflags.GranFlags.granSimStats &&
(RTSflags.GranFlags.debug & 0x20000) &&
/* If only one thread in queue so far we emit DESCHEDULE in debug mode */
if(RTSflags.GranFlags.granSimStats &&
(RTSflags.GranFlags.debug & 0x20000) &&
DumpRawGranEvent(CurrentProc,CurrentProc,GR_DESCHEDULE,
DumpRawGranEvent(CurrentProc,CurrentProc,GR_DESCHEDULE,
resched = rtsTrue;
}
if ( InsertThread(tso) ) { /* new head of queue */
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
resched = rtsTrue;
}
if ( InsertThread(tso) ) { /* new head of queue */
new_event(CurrentProc,CurrentProc,CurrentTime[CurrentProc],
- CONTINUETHREAD,tso,Prelude_Z91Z93_closure,NULL);
+ CONTINUETHREAD,tso,PrelBase_Z91Z93_closure,NULL);
if (RTSflags.GranFlags.DoPriorityScheduling && TSO_PRI(tso)!=0)
/* {add_to_spark_queue}vo' jInIHta'; Qu' wa'DIch yIleghQo' */
for (prev = ThreadQueueHd, next = TSO_LINK(ThreadQueueHd), count=0;
if (RTSflags.GranFlags.DoPriorityScheduling && TSO_PRI(tso)!=0)
/* {add_to_spark_queue}vo' jInIHta'; Qu' wa'DIch yIleghQo' */
for (prev = ThreadQueueHd, next = TSO_LINK(ThreadQueueHd), count=0;
!(found = (TSO_PRI(tso) >= TSO_PRI(next)));
prev = next, next = TSO_LINK(next), count++)
{}
!(found = (TSO_PRI(tso) >= TSO_PRI(next)));
prev = next, next = TSO_LINK(next), count++)
{}
/* Never add TSO as first elem of thread queue; the first */
/* element should be the one that is currently running -- HWL */
# if defined(GRAN_CHECK)
/* Never add TSO as first elem of thread queue; the first */
/* element should be the one that is currently running -- HWL */
# if defined(GRAN_CHECK)
/* just 1 elem => ok */
} else {
/* Qu' wa'DIch yIleghQo' (ignore first elem)! */
for (prev = TSO_LINK(ThreadQueueHd), next = TSO_LINK(prev);
/* just 1 elem => ok */
} else {
/* Qu' wa'DIch yIleghQo' (ignore first elem)! */
for (prev = TSO_LINK(ThreadQueueHd), next = TSO_LINK(prev);
prev = next, next = TSO_LINK(prev)) {
sorted = sorted &&
(TSO_PRI(prev) >= TSO_PRI(next));
prev = next, next = TSO_LINK(prev)) {
sorted = sorted &&
(TSO_PRI(prev) >= TSO_PRI(next));
!(found = (TSO_CLOCK(tso) < TSO_CLOCK(next)));
prev = next, next = TSO_LINK(next), count++)
{}
!(found = (TSO_CLOCK(tso) < TSO_CLOCK(next)));
prev = next, next = TSO_LINK(next), count++)
{}
if (PendingSparksHd[proc][ADVISORY_POOL]!=NULL)
{
new_event(proc,proc,CurrentTime[proc],
if (PendingSparksHd[proc][ADVISORY_POOL]!=NULL)
{
new_event(proc,proc,CurrentTime[proc],
- FINDWORK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,NULL);
+ FINDWORK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,NULL);
- DumpRawGranEvent(p,(PROC)0,SP_EXPORTED,Prelude_Z91Z93_closure,
+ DumpRawGranEvent(p,(PROC)0,SP_EXPORTED,PrelBase_Z91Z93_closure,
new_event(proc,p /* CurrentProc */,stealtime,
new_event(proc,p /* CurrentProc */,stealtime,
- MOVESPARK,Prelude_Z91Z93_closure,Prelude_Z91Z93_closure,spark);
+ MOVESPARK,PrelBase_Z91Z93_closure,PrelBase_Z91Z93_closure,spark);
- DumpRawGranEvent(p,(PROC)0,SP_PRUNED,Prelude_Z91Z93_closure,
+ DumpRawGranEvent(p,(PROC)0,SP_PRUNED,PrelBase_Z91Z93_closure,
/* times shall contain processors from which we may steal threads */
for(p=0; p < RTSflags.GranFlags.proc; ++p)
/* times shall contain processors from which we may steal threads */
for(p=0; p < RTSflags.GranFlags.proc; ++p)
SET_PROCS(thread,Nowhere /* PE_NUMBER(proc) */);
/* Move from one queue to another */
SET_PROCS(thread,Nowhere /* PE_NUMBER(proc) */);
/* Move from one queue to another */
- new_event(proc,p,stealtime,MOVETHREAD,thread,Prelude_Z91Z93_closure,NULL);
+ new_event(proc,p,stealtime,MOVETHREAD,thread,PrelBase_Z91Z93_closure,NULL);
if(RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(p,proc,GR_STEALING,thread,
if(RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(p,proc,GR_STEALING,thread,
if(0 && RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(CurrentProc,99,GR_START,
if(0 && RTSflags.GranFlags.granSimStats)
DumpRawGranEvent(CurrentProc,99,GR_START,
TSO_SPARKNAME(tso));
/* ^^^ SN (spark name) as optional info */
/* spark_queue_len(CurrentProc,ADVISORY_POOL)); */
TSO_SPARKNAME(tso));
/* ^^^ SN (spark name) as optional info */
/* spark_queue_len(CurrentProc,ADVISORY_POOL)); */
TSO_CCC(tso) = (CostCentre)STATIC_CC_REF(CC_MAIN);
#endif
TSO_NAME(tso) = (P_) INFO_PTR(topClosure); /* A string would be nicer -- JSM */
TSO_CCC(tso) = (CostCentre)STATIC_CC_REF(CC_MAIN);
#endif
TSO_NAME(tso) = (P_) INFO_PTR(topClosure); /* A string would be nicer -- JSM */
STKO_SIZE(stko) = RTSflags.ConcFlags.stkChunkSize + STKO_VHS;
STKO_SpB(stko) = STKO_SuB(stko) = STKO_BSTK_BOT(stko) + BREL(1);
STKO_SpA(stko) = STKO_SuA(stko) = STKO_ASTK_BOT(stko) + AREL(1);
STKO_SIZE(stko) = RTSflags.ConcFlags.stkChunkSize + STKO_VHS;
STKO_SpB(stko) = STKO_SuB(stko) = STKO_BSTK_BOT(stko) + BREL(1);
STKO_SpA(stko) = STKO_SuA(stko) = STKO_ASTK_BOT(stko) + AREL(1);
{
/* We schedule runnable threads before killing them to */
/* make the job of bookkeeping the running, runnable, */
{
/* We schedule runnable threads before killing them to */
/* make the job of bookkeeping the running, runnable, */
(!RTSflags.GranFlags.Light || RTSflags.GranFlags.debug & 0x20000) )
DumpRawGranEvent(i,(PROC)0,GR_SCHEDULE,
RunnableThreadsHd[i],
(!RTSflags.GranFlags.Light || RTSflags.GranFlags.debug & 0x20000) )
DumpRawGranEvent(i,(PROC)0,GR_SCHEDULE,
RunnableThreadsHd[i],
if (!RTSflags.GranFlags.granSimStats_suppressed &&
TSO_TYPE(RunnableThreadsHd[i])!=T_MAIN)
DumpGranInfo(i,RunnableThreadsHd[i],rtsTrue);
if (!RTSflags.GranFlags.granSimStats_suppressed &&
TSO_TYPE(RunnableThreadsHd[i])!=T_MAIN)
DumpGranInfo(i,RunnableThreadsHd[i],rtsTrue);
/* Printing of statistics has been moved into end_gr_simulation */
} /* ... T_MAIN */
if (RTSflags.GranFlags.labelling && RTSflags.GranFlags.granSimStats &&
!RTSflags.GranFlags.granSimStats_suppressed)
DumpStartEventAt(TSO_STARTEDAT(CurrentTSO),where_is(CurrentTSO),0,GR_START,
/* Printing of statistics has been moved into end_gr_simulation */
} /* ... T_MAIN */
if (RTSflags.GranFlags.labelling && RTSflags.GranFlags.granSimStats &&
!RTSflags.GranFlags.granSimStats_suppressed)
DumpStartEventAt(TSO_STARTEDAT(CurrentTSO),where_is(CurrentTSO),0,GR_START,
TSO_SPARKNAME(CurrentTSO));
/* ^^^ SN (spark name) as optional info */
/* spark_queue_len(CurrentProc,ADVISORY_POOL)); */
TSO_SPARKNAME(CurrentTSO));
/* ^^^ SN (spark name) as optional info */
/* spark_queue_len(CurrentProc,ADVISORY_POOL)); */
{
if (RTSflags.GranFlags.granSimStats && !RTSflags.GranFlags.granSimStats_suppressed &&
(!RTSflags.GranFlags.Light || RTSflags.GranFlags.debug & 0x20000) )
{
if (RTSflags.GranFlags.granSimStats && !RTSflags.GranFlags.granSimStats_suppressed &&
(!RTSflags.GranFlags.Light || RTSflags.GranFlags.debug & 0x20000) )
STKO_LINK(SAVE_StkO) = AvailableStack;
AvailableStack = SAVE_StkO;
/* Reuse TSO */
TSO_LINK(CurrentTSO) = AvailableTSO;
AvailableTSO = CurrentTSO;
STKO_LINK(SAVE_StkO) = AvailableStack;
AvailableStack = SAVE_StkO;
/* Reuse TSO */
TSO_LINK(CurrentTSO) = AvailableTSO;
AvailableTSO = CurrentTSO;
fprintf(stderr,"\n[PE %d] @ %lu BQ: ",
CurrentProc,CurrentTime[CurrentProc]);
fprintf(stderr,"\n[PE %d] @ %lu BQ: ",
CurrentProc,CurrentTime[CurrentProc]);
fprintf(stderr," NIL.\n");
else if (
(INFO_PTR(bqe) == (P_) RBH_Save_0_info) ||
fprintf(stderr," NIL.\n");
else if (
(INFO_PTR(bqe) == (P_) RBH_Save_0_info) ||
RTSflags.GranFlags.gran_gunblocktime;
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_mtidytime;
/* new_event(proc, CurrentProc, notifytime,
RTSflags.GranFlags.gran_gunblocktime;
CurrentTime[CurrentProc] += RTSflags.GranFlags.gran_mtidytime;
/* new_event(proc, CurrentProc, notifytime,
- GLOBALUNBLOCK,bqe,Prelude_Z91Z93_closure,NULL); */
+ GLOBALUNBLOCK,bqe,PrelBase_Z91Z93_closure,NULL); */
TSO_CLOCK(bqe) = notifytime;
/* and create a resume message */
new_event(proc, CurrentProc, notifytime,
TSO_CLOCK(bqe) = notifytime;
/* and create a resume message */
new_event(proc, CurrentProc, notifytime,
- RESUMETHREAD,bqe,Prelude_Z91Z93_closure,NULL);
+ RESUMETHREAD,bqe,PrelBase_Z91Z93_closure,NULL);
SET_INFO_PTR(bh, BQ_info);
BQ_ENTRIES(bh) = (W_) tso;
SET_INFO_PTR(bh, BQ_info);
BQ_ENTRIES(bh) = (W_) tso;