| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ | |
| #define FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ | |
| #include "flutter/fml/synchronization/shared_mutex.h" | |
| #include <shared_mutex> | |
| namespace fml { | |
| class SharedMutexStd : public SharedMutex { | |
| public: | |
| virtual void Lock(); | |
| virtual void LockShared(); | |
| virtual void Unlock(); | |
| virtual void UnlockShared(); | |
| private: | |
| friend SharedMutex* SharedMutex::Create(); | |
| SharedMutexStd() = default; | |
| std::shared_timed_mutex mutex_; | |
| }; | |
| } // namespace fml | |
| #endif // FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ |