Moved interruptAccept management into scanPause/scanRun functions.

This commit is contained in:
Andrew Johnson
2009-01-06 23:22:28 +00:00
parent a7a6c01bea
commit 76c9329b5e
2 changed files with 10 additions and 9 deletions
+10 -4
View File
@@ -141,14 +141,16 @@ static void scanShutdown(void *arg)
{
int i;
scanOnce((dbCommon *)&exitOnce);
epicsEventWait(startStopEvent);
interruptAccept = FALSE;
for (i = 0; i < nPeriodic; i++) {
papPeriodic[i]->scanCtl = ctlExit;
epicsEventSignal(papPeriodic[i]->loopEvent);
epicsEventWait(startStopEvent);
}
scanOnce((dbCommon *)&exitOnce);
epicsEventWait(startStopEvent);
}
long scanInit()
@@ -173,7 +175,9 @@ void scanRun(void)
{
int i;
interruptAccept = TRUE;
scanCtl = ctlRun;
for (i = 0; i < nPeriodic; i++)
papPeriodic[i]->scanCtl = ctlRun;
}
@@ -182,9 +186,11 @@ void scanPause(void)
{
int i;
scanCtl = ctlPause;
for (i = 0; i < nPeriodic; i++)
for (i = nPeriodic - 1; i >= 0; --i)
papPeriodic[i]->scanCtl = ctlPause;
scanCtl = ctlPause;
interruptAccept = FALSE;
}
void scanAdd(struct dbCommon *precord)
-5
View File
@@ -157,7 +157,6 @@ int iocRun(void)
/* Enable scan tasks and some driver support functions. */
scanRun();
dbCaRun();
interruptAccept = TRUE;
if (iocState == iocBuilt)
initHooks(initHookAfterInterruptAccept);
@@ -180,7 +179,6 @@ int iocPause(void)
}
rsrv_pause();
interruptAccept = FALSE;
dbCaPause();
scanPause();
iocState = iocPaused;
@@ -462,9 +460,6 @@ static void exitDatabase(void *dummy)
DBLINK *plink;
int j;
scanPause();
interruptAccept = FALSE;
for (pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList);
pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {