1 // Copyright (c) 2016 The Chromium 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 #include "quiche/common/platform/api/quiche_mutex.h" 6 7 namespace quiche { 8 WriterLock()9void QuicheMutex::WriterLock() { impl_.WriterLock(); } 10 WriterUnlock()11void QuicheMutex::WriterUnlock() { impl_.WriterUnlock(); } 12 ReaderLock()13void QuicheMutex::ReaderLock() { impl_.ReaderLock(); } 14 ReaderUnlock()15void QuicheMutex::ReaderUnlock() { impl_.ReaderUnlock(); } 16 AssertReaderHeld() const17void QuicheMutex::AssertReaderHeld() const { impl_.AssertReaderHeld(); } 18 QuicheReaderMutexLock(QuicheMutex * lock)19QuicheReaderMutexLock::QuicheReaderMutexLock(QuicheMutex* lock) : lock_(lock) { 20 lock->ReaderLock(); 21 } 22 ~QuicheReaderMutexLock()23QuicheReaderMutexLock::~QuicheReaderMutexLock() { lock_->ReaderUnlock(); } 24 QuicheWriterMutexLock(QuicheMutex * lock)25QuicheWriterMutexLock::QuicheWriterMutexLock(QuicheMutex* lock) : lock_(lock) { 26 lock->WriterLock(); 27 } 28 ~QuicheWriterMutexLock()29QuicheWriterMutexLock::~QuicheWriterMutexLock() { lock_->WriterUnlock(); } 30 31 } // namespace quiche 32