]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Cleanup Packet Pools when done.
authorKen Steele <ken@tilera.com>
Tue, 29 Jul 2014 15:13:56 +0000 (11:13 -0400)
committerVictor Julien <victor@inliniac.net>
Wed, 30 Jul 2014 07:49:05 +0000 (09:49 +0200)
src/tm-threads.c
src/tmqh-packetpool.c

index 6e7d31891b9d8ed5cd4e0a18d96589aad4cd6e13..93c7c1c7d44fee28448d68bb665a35b918afa51d 100644 (file)
@@ -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);
 
index d8d67cd5cd168fda555f7a278694c9a68ed091b2..36c2047fa83844877ade09bcb79c3f4d9dd32e6d 100644 (file)
@@ -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)