/
GraphTreeHeap
/
museumdb2
Обзор
Документация
Войти
/
GraphTreeHeap
/
museumdb2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
util/distributed_mutex.h
50 строк
1 KB
Peter Dillinger
Fix race in options taking effect (#11929)
12 окт 2023, 20:05
12 окт 2023, 20:05
d010b02
Код
Авторство
О чём код?
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. // This source code is licensed under both the GPLv2 (found in the // COPYING file in the root directory) and Apache 2.0 License // (found in the LICENSE.Apache file in the root directory). #pragma once #include "rocksdb/rocksdb_namespace.h" // This file declares a wrapper around the efficient folly DistributedMutex // that falls back on a standard mutex when not available. See // https://github.com/facebook/folly/blob/main/folly/synchronization/DistributedMutex.h // for benefits and limitations. // At the moment, only scoped locking is supported using DMutexLock // RAII wrapper, because lock/unlock APIs will vary. #ifdef USE_FOLLY #include <folly/synchronization/DistributedMutex.h> namespace ROCKSDB_NAMESPACE { class DMutex : public folly::DistributedMutex { public: static const char* kName() { return "folly::DistributedMutex"; } explicit DMutex(bool IGNORED_adaptive = false) { (void)IGNORED_adaptive; } // currently no-op void AssertHeld() const {} }; using DMutexLock = std::lock_guard<folly::DistributedMutex>; } // namespace ROCKSDB_NAMESPACE #else #include <mutex> #include "port/port.h" namespace ROCKSDB_NAMESPACE { using DMutex = port::Mutex; using DMutexLock = std::lock_guard<DMutex>; } // namespace ROCKSDB_NAMESPACE #endif