diff options
author | ivanmautin <ivanmautin@yandex-team.com> | 2024-06-06 16:16:48 +0300 |
---|---|---|
committer | ivanmautin <ivanmautin@yandex-team.com> | 2024-06-06 16:32:57 +0300 |
commit | 7e1624f2fd672349e2f89baffeca12ef8272ec8d (patch) | |
tree | 94ace8996703dad25ce4031005691c45b9f9ad8c /library/cpp/cache/thread_safe_cache.h | |
parent | 2123e799dc1993fb65554a96fbf38f94aa588978 (diff) | |
download | ydb-7e1624f2fd672349e2f89baffeca12ef8272ec8d.tar.gz |
add GetOrNull method to threadsafe cache
2c3ce3e36d35b563fe21b581380310ac84007f57
Diffstat (limited to 'library/cpp/cache/thread_safe_cache.h')
-rw-r--r-- | library/cpp/cache/thread_safe_cache.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/library/cpp/cache/thread_safe_cache.h b/library/cpp/cache/thread_safe_cache.h index 08c899ad3d..e77d1a45fd 100644 --- a/library/cpp/cache/thread_safe_cache.h +++ b/library/cpp/cache/thread_safe_cache.h @@ -49,6 +49,16 @@ namespace NPrivate { Cache.Update(key, value); } + const TPtr GetOrNull(TArgs... args) { + Key key = Callbacks.GetKey(args...); + TReadGuard r(Mutex); + auto iter = Cache.Find(key); + if (iter == Cache.End()) { + return nullptr; + } + return iter.Value(); + } + const TPtr Get(TArgs... args) const { return GetValue<true>(args...); } |