if (suri.run_mode != RUNMODE_UNIX_SOCKET) {
DefragDestroy();
}
- PacketPoolDestroy();
MagicDeinit();
TmqhCleanup();
TmModuleRunDeInit();
char run = 1;
TmEcode r = TM_ECODE_OK;
+ PacketPoolInitEmpty();
+
/* Set the thread name */
if (SCSetThreadName(tv->name) < 0) {
SCLogWarning(SC_ERR_THREAD_INIT, "Unable to set thread name");
TmThreadsSetFlag(tv, THV_RUNNING_DONE);
TmThreadWaitForFlag(tv, THV_DEINIT);
+ PacketPoolDestroy();
+
s = (TmSlot *)tv->tm_slots;
for ( ; s != NULL; s = s->slot_next) {
}
}
+void PacketPoolInitEmpty(void)
+{
+#ifndef TLS
+ TmqhPacketPoolInit();
+#endif
+
+ PktPool *my_pool = GetThreadPacketPool();
+
+ SCMutexInit(&my_pool->return_stack.mutex, NULL);
+ SCCondInit(&my_pool->return_stack.cond, NULL);
+ SC_ATOMIC_INIT(my_pool->return_stack.sync_now);
+}
+
void PacketPoolInit(void)
{
extern intmax_t max_pending_packets;
void PacketPoolWait(void);
void PacketPoolReturnPacket(Packet *p);
void PacketPoolInit(void);
+void PacketPoolInitEmpty(void);
void PacketPoolDestroy(void);
#endif /* __TMQH_PACKETPOOL_H__ */