diff --git a/libpurgeablemem/cpp/include/purgeable_resource_manager.h b/libpurgeablemem/cpp/include/purgeable_resource_manager.h index e0a69266bb868ca50a6414d7c1a513b84ee259d1..41a3b3574e796e2fc807410bd0ca67d013e29906 100644 --- a/libpurgeablemem/cpp/include/purgeable_resource_manager.h +++ b/libpurgeablemem/cpp/include/purgeable_resource_manager.h @@ -95,6 +95,7 @@ private: friend class PurgeableMemBase; mutable std::mutex lruCacheMutex_; + mutable std::mutex threadPoolMutex_; LruCache lruCache_; ThreadPool threadPool_ {THREAD_POOL_NAME}; bool isThreadPoolStarted_ {false}; diff --git a/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp b/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp index e5d6ffdeffc4d9ec95f2e55530cfc405f7a4502c..c67ce3057d053d250556b559829180dff219b68f 100644 --- a/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp +++ b/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp @@ -310,6 +310,7 @@ int32_t PurgeableResourceManager::GetLruCacheCapacityFromSysPara() const void PurgeableResourceManager::StartThreadPool() { + std::lock_guard lock(threadPoolMutex_); if (isThreadPoolStarted_) { return; }