ioc/db: cleanup dbEvent freeLists

This commit is contained in:
Michael Davidsaver
2017-04-15 20:27:50 -04:00
parent d397f0fd92
commit b4db176e48
3 changed files with 23 additions and 0 deletions

View File

@@ -321,6 +321,22 @@ fail:
return NULL;
}
epicsShareFunc void db_cleanup_events(void)
{
freeListCleanup(dbevEventUserFreeList);
dbevEventUserFreeList = NULL;
freeListCleanup(dbevEventQueueFreeList);
dbevEventQueueFreeList = NULL;
freeListCleanup(dbevEventSubscriptionFreeList);
dbevEventSubscriptionFreeList = NULL;
freeListCleanup(dbevFieldLogFreeList);
dbevFieldLogFreeList = NULL;
}
/*
* DB_CLOSE_EVENTS()
*

View File

@@ -63,6 +63,10 @@ epicsShareFunc void db_flush_extra_labor_event (dbEventCtx);
epicsShareFunc int db_post_extra_labor (dbEventCtx ctx);
epicsShareFunc void db_event_change_priority ( dbEventCtx ctx, unsigned epicsPriority );
#ifdef EPICS_PRIVATE_API
epicsShareFunc void db_cleanup_events(void);
#endif
typedef void EVENTFUNC (void *user_arg, struct dbChannel *chan,
int eventsRemaining, struct db_field_log *pfl);

View File

@@ -12,6 +12,8 @@
#include <string.h>
#define EPICS_PRIVATE_API
#include "dbmf.h"
#include "epicsUnitTest.h"
#include "osiFileName.h"
@@ -90,6 +92,7 @@ void testIocShutdownOk(void)
void testdbCleanup(void)
{
dbFreeBase(pdbbase);
db_cleanup_events();
initHookFree();
registryFree();
pdbbase = NULL;