// 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. #include "flutter/fml/platform/posix/shared_mutex_posix.h" #include "flutter/fml/logging.h" namespace fml { SharedMutex* SharedMutex::Create() { return new SharedMutexPosix(); } SharedMutexPosix::SharedMutexPosix() { FML_CHECK(pthread_rwlock_init(&rwlock_, nullptr) == 0); } void SharedMutexPosix::Lock() { pthread_rwlock_wrlock(&rwlock_); } void SharedMutexPosix::LockShared() { pthread_rwlock_rdlock(&rwlock_); } void SharedMutexPosix::Unlock() { pthread_rwlock_unlock(&rwlock_); } void SharedMutexPosix::UnlockShared() { pthread_rwlock_unlock(&rwlock_); } } // namespace fml