aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/upstream/zen.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2023-12-19 10:54:11 +0100
committerGitHub <[email protected]>2023-12-19 10:54:11 +0100
commita8c4854f60d72d083bd34b34a9ccccc7353d052c (patch)
treeb67f14491390e81142f8293a20bc200be58c3fbb /src/zenserver/upstream/zen.cpp
parentfix ChunkIndexToChunkHash indexing (#621) (diff)
downloadzen-a8c4854f60d72d083bd34b34a9ccccc7353d052c.tar.xz
zen-a8c4854f60d72d083bd34b34a9ccccc7353d052c.zip
various TSAN/ASAN/LeakAnalyzer fixes (#622)
* fix JobQueue test threading issue. The inner job queued with `QueueJob` would reference `I` from inside the captured closure which would subsequently disappear * made sure application exit is thread safe * don't try to access string data out of bounds * keep-alive flag is accessed from multiple threads * fix memory leaks in Zen upstream client code * TSAN fixes for Event
Diffstat (limited to 'src/zenserver/upstream/zen.cpp')
-rw-r--r--src/zenserver/upstream/zen.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/zenserver/upstream/zen.cpp b/src/zenserver/upstream/zen.cpp
index 8ae33597a..2d52236b3 100644
--- a/src/zenserver/upstream/zen.cpp
+++ b/src/zenserver/upstream/zen.cpp
@@ -59,6 +59,11 @@ ZenStructuredCacheClient::ZenStructuredCacheClient(const ZenStructuredCacheClien
ZenStructuredCacheClient::~ZenStructuredCacheClient()
{
+ RwLock::ExclusiveLockScope _(m_SessionStateLock);
+ for (auto& CacheEntry : m_SessionStateCache)
+ {
+ delete CacheEntry;
+ }
}
detail::ZenCacheSessionState*