Run expiration on a separate thread

This commit is contained in:
Tim Wojtulewicz 2025-02-07 16:55:40 -07:00
parent cad48cebd4
commit 40f60f26b3
4 changed files with 44 additions and 10 deletions

View file

@ -3,7 +3,9 @@
#pragma once
#include <mutex>
#include <thread>
#include "zeek/3rdparty/jthread.hpp"
#include "zeek/Timer.h"
#include "zeek/plugin/ComponentManager.h"
#include "zeek/storage/Backend.h"
@ -65,10 +67,13 @@ public:
*/
ErrorResult CloseBackend(BackendPtr backend, ErrorResultCallback* cb = nullptr);
void Expire();
protected:
friend class storage::detail::ExpirationTimer;
void Expire();
void RunExpireThread();
void StartExpirationTimer();
std::jthread expiration_thread;
friend class storage::OpenResultCallback;
void RegisterBackend(BackendPtr backend);