TempleOSCDV4.03.ISO
This commit is contained in:
1 parent
1541d7328d
commit
0f1a4a5d65
115 files changed
+5618
-4863
No files matched your search
+8
-11
@@ -264,10 +264,10 @@ U0 Msg(I64 msg_code,I64 a1,I64 a2,I64 flags=0)
|
||||
#define SCR_CONT 1
|
||||
#define SCR_EXIT 2
|
||||
|
||||
I64 SrvCmdRun(I64 run_flags,CSrvCmd *tempc)
|
||||
{
|
||||
CSrvCtrl *ctrl=tempc->ctrl;
|
||||
CTask *master;
|
||||
I64 SrvCmdRunOne(I64 run_flags,CSrvCtrl *ctrl)
|
||||
{//Called with ctrl->flags,SVCRf_LOCKED.
|
||||
CSrvCmd *tempc=ctrl->next_waiting;
|
||||
CTask *master;
|
||||
I64 result,flags=tempc->flags,old_flags=GetRFlags;
|
||||
if (Bt(&flags,SVCf_EXIT_ON_COMPLETE))
|
||||
result=SCR_EXIT;
|
||||
@@ -350,18 +350,13 @@ I64 SrvCmdRun(I64 run_flags,CSrvCmd *tempc)
|
||||
I64 SrvCmdsHandler(I64 run_flags,CTask *task=NULL)
|
||||
{//Handle all waiting cmds and return.
|
||||
I64 cnt=0,old_flags=GetRFlags;
|
||||
CSrvCmd *tempc,*tempc1;
|
||||
if (!task) task=Fs;
|
||||
while (TRUE) {
|
||||
CLI
|
||||
while (LBts(&task->srv_ctrl.flags,SVCRf_LOCKED))
|
||||
PAUSE
|
||||
tempc1=&task->srv_ctrl.next_waiting;
|
||||
tempc=tempc1->next;
|
||||
if (tempc==tempc1)
|
||||
goto sch_done;
|
||||
else
|
||||
switch (SrvCmdRun(run_flags,tempc)) {
|
||||
if (task->srv_ctrl.next_waiting!=&task->srv_ctrl)
|
||||
switch (SrvCmdRunOne(run_flags,&task->srv_ctrl)) {
|
||||
case SCR_CONT:
|
||||
cnt++;
|
||||
break;
|
||||
@@ -370,6 +365,8 @@ I64 SrvCmdsHandler(I64 run_flags,CTask *task=NULL)
|
||||
case SCR_DONE:
|
||||
goto sch_done;
|
||||
}
|
||||
else
|
||||
goto sch_done;
|
||||
}
|
||||
sch_done:
|
||||
LBtr(&task->srv_ctrl.flags,SVCRf_LOCKED);
|
||||
|
||||
Reference in new issue
Block a user