From: Ken Steele Date: Tue, 29 Jul 2014 15:13:56 +0000 (-0400) Subject: Cleanup Packet Pools when done. X-Git-Tag: suricata-2.1beta1~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=edb702a7b6a904377e35f49f6ef5e5f459e9a07a;p=thirdparty%2Fsuricata.git Cleanup Packet Pools when done. --- 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)