Cleanup Packet Pools when done.

pull/1067/merge
Ken Steele 12 years ago committed by Victor Julien
parent b045fcb032
commit edb702a7b6

@ -211,6 +211,8 @@ void *TmThreadsSlot1NoIn(void *td)
} }
} /* while (run) */ } /* while (run) */
PacketPoolDestroy();
TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT); TmThreadWaitForFlag(tv, THV_DEINIT);
@ -305,6 +307,8 @@ void *TmThreadsSlot1NoOut(void *td)
} }
} /* while (run) */ } /* while (run) */
PacketPoolDestroy();
TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT); TmThreadWaitForFlag(tv, THV_DEINIT);
@ -394,6 +398,8 @@ void *TmThreadsSlot1NoInOut(void *td)
} }
} /* while (run) */ } /* while (run) */
PacketPoolDestroy();
TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT); TmThreadWaitForFlag(tv, THV_DEINIT);
@ -523,6 +529,8 @@ void *TmThreadsSlot1(void *td)
} }
} /* while (run) */ } /* while (run) */
PacketPoolDestroy();
TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT); TmThreadWaitForFlag(tv, THV_DEINIT);
@ -722,6 +730,8 @@ void *TmThreadsSlotPktAcqLoop(void *td) {
} }
SCPerfSyncCounters(tv); SCPerfSyncCounters(tv);
PacketPoolDestroy();
TmThreadsSetFlag(tv, THV_RUNNING_DONE); TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT); TmThreadWaitForFlag(tv, THV_DEINIT);

@ -96,7 +96,7 @@ static PktPool *ThreadPacketPoolCreate(void)
TmqhPacketpoolInit(); TmqhPacketpoolInit();
/* Create a new pool for this thread. */ /* Create a new pool for this thread. */
pool = (PktPool*)SCMallocAligned(sizeof(PktPool), CLS); PktPool* pool = (PktPool*)SCMallocAligned(sizeof(PktPool), CLS);
if (pool == NULL) { if (pool == NULL) {
SCLogError(SC_ERR_MEM_ALLOC, "malloc failed"); SCLogError(SC_ERR_MEM_ALLOC, "malloc failed");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -284,14 +284,13 @@ void PacketPoolInit(void)
max_pending_packets, (uintmax_t)(max_pending_packets*SIZE_OF_PACKET)); max_pending_packets, (uintmax_t)(max_pending_packets*SIZE_OF_PACKET));
} }
void PacketPoolDestroy(void) { void PacketPoolDestroy(void)
#if 0 {
Packet *p = NULL; Packet *p = NULL;
while ((p = PacketPoolGetPacket()) != NULL) { while ((p = PacketPoolGetPacket()) != NULL) {
PACKET_CLEANUP(p); PACKET_CLEANUP(p);
SCFree(p); SCFree(p);
} }
#endif
} }
Packet *TmqhInputPacketpool(ThreadVars *tv) Packet *TmqhInputPacketpool(ThreadVars *tv)

Loading…
Cancel
Save