| // 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_POSIX_H_ |
| #define FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_POSIX_H_ |
| |
| #include <shared_mutex> |
| |
| #include "flutter/fml/synchronization/shared_mutex.h" |
| |
| namespace fml { |
| |
| class SharedMutexPosix : public SharedMutex { |
| public: |
| virtual void Lock(); |
| virtual void LockShared(); |
| virtual void Unlock(); |
| virtual void UnlockShared(); |
| |
| private: |
| friend SharedMutex* SharedMutex::Create(); |
| SharedMutexPosix(); |
| |
| pthread_rwlock_t rwlock_; |
| }; |
| |
| } // namespace fml |
| |
| #endif // FLUTTER_FML_SYNCHRONIZATION_SHARED_MUTEX_POSIX_H_ |