dbChannel: shutdown from exitDatabase()

Can't cleanup dbChannel while rsrv or scan tasks
remain running.
This commit is contained in:
Michael Davidsaver
2014-11-18 11:25:15 -05:00
parent ae7b8c7aa3
commit 9c2a62ea96
3 changed files with 3 additions and 2 deletions
+1 -2
View File
@@ -53,7 +53,7 @@ static void *dbChannelFreeList;
static void *chFilterFreeList;
static void *dbchStringFreeList;
static void dbChannelExit(void* junk)
void dbChannelExit(void)
{
freeListCleanup(dbChannelFreeList);
freeListCleanup(chFilterFreeList);
@@ -69,7 +69,6 @@ void dbChannelInit (void)
freeListInitPvt(&dbChannelFreeList, sizeof(dbChannel), 128);
freeListInitPvt(&chFilterFreeList, sizeof(chFilter), 64);
freeListInitPvt(&dbchStringFreeList, sizeof(epicsOldString), 128);
epicsAtExit(dbChannelExit, NULL);
}
static void chf_value(parseContext *parser, parse_result *presult)
+1
View File
@@ -150,6 +150,7 @@ struct dbCommon;
struct dbFldDes;
epicsShareFunc void dbChannelInit (void);
epicsShareFunc void dbChannelExit(void);
epicsShareFunc long dbChannelTest(const char *name);
epicsShareFunc dbChannel * dbChannelCreate(const char *name);
epicsShareFunc long dbChannelOpen(dbChannel *chan);
+1
View File
@@ -683,6 +683,7 @@ int iocShutdown(void)
iterateRecords(doFreeRecord, NULL);
dbLockCleanupRecords(pdbbase);
asShutdown();
dbChannelExit();
iocshFree();
}
iocState = iocStopped;