1 | // Copyright 2013 The Flutter Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. |
4 | |
5 | #ifndef FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ |
6 | #define FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ |
7 | |
8 | #include <shared_mutex> |
9 | #include "flutter/fml/synchronization/shared_mutex.h" |
10 | |
11 | namespace fml { |
12 | |
13 | class SharedMutexStd : public SharedMutex { |
14 | public: |
15 | virtual void Lock(); |
16 | virtual void LockShared(); |
17 | virtual void Unlock(); |
18 | virtual void UnlockShared(); |
19 | |
20 | private: |
21 | friend SharedMutex* SharedMutex::Create(); |
22 | SharedMutexStd() = default; |
23 | |
24 | std::shared_timed_mutex mutex_; |
25 | }; |
26 | |
27 | } // namespace fml |
28 | |
29 | #endif // FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_STD_H_ |
30 | |