From edb702a7b6a904377e35f49f6ef5e5f459e9a07a Mon Sep 17 00:00:00 2001 From: Ken Steele Date: Tue, 29 Jul 2014 11:13:56 -0400 Subject: [PATCH] Cleanup Packet Pools when done. --- src/tm-threads.c | 10 ++++++++++ src/tmqh-packetpool.c | 7 +++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/tm-threads.c b/src/tm-threads.c index 6e7d31891b..93c7c1c7d4 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -211,6 +211,8 @@ void *TmThreadsSlot1NoIn(void *td) } } /* while (run) */ + PacketPoolDestroy(); + TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadWaitForFlag(tv, THV_DEINIT); @@ -305,6 +307,8 @@ void *TmThreadsSlot1NoOut(void *td) } } /* while (run) */ + PacketPoolDestroy(); + TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadWaitForFlag(tv, THV_DEINIT); @@ -394,6 +398,8 @@ void *TmThreadsSlot1NoInOut(void *td) } } /* while (run) */ + PacketPoolDestroy(); + TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadWaitForFlag(tv, THV_DEINIT); @@ -523,6 +529,8 @@ void *TmThreadsSlot1(void *td) } } /* while (run) */ + PacketPoolDestroy(); + TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadWaitForFlag(tv, THV_DEINIT); @@ -722,6 +730,8 @@ void *TmThreadsSlotPktAcqLoop(void *td) { } SCPerfSyncCounters(tv); + PacketPoolDestroy(); + TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadWaitForFlag(tv, THV_DEINIT); diff --git a/src/tmqh-packetpool.c b/src/tmqh-packetpool.c index d8d67cd5cd..36c2047fa8 100644 --- a/src/tmqh-packetpool.c +++ b/src/tmqh-packetpool.c @@ -96,7 +96,7 @@ static PktPool *ThreadPacketPoolCreate(void) TmqhPacketpoolInit(); /* Create a new pool for this thread. */ - pool = (PktPool*)SCMallocAligned(sizeof(PktPool), CLS); + PktPool* pool = (PktPool*)SCMallocAligned(sizeof(PktPool), CLS); if (pool == NULL) { SCLogError(SC_ERR_MEM_ALLOC, "malloc failed"); exit(EXIT_FAILURE); @@ -284,14 +284,13 @@ void PacketPoolInit(void) max_pending_packets, (uintmax_t)(max_pending_packets*SIZE_OF_PACKET)); } -void PacketPoolDestroy(void) { -#if 0 +void PacketPoolDestroy(void) +{ Packet *p = NULL; while ((p = PacketPoolGetPacket()) != NULL) { PACKET_CLEANUP(p); SCFree(p); } -#endif } Packet *TmqhInputPacketpool(ThreadVars *tv)