Moved interruptAccept management into scanPause/scanRun functions.
This commit is contained in:
+10
-4
@@ -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)
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user