xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/common/platform/api/quiche_mutex.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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()9 void QuicheMutex::WriterLock() { impl_.WriterLock(); }
10 
WriterUnlock()11 void QuicheMutex::WriterUnlock() { impl_.WriterUnlock(); }
12 
ReaderLock()13 void QuicheMutex::ReaderLock() { impl_.ReaderLock(); }
14 
ReaderUnlock()15 void QuicheMutex::ReaderUnlock() { impl_.ReaderUnlock(); }
16 
AssertReaderHeld() const17 void QuicheMutex::AssertReaderHeld() const { impl_.AssertReaderHeld(); }
18 
QuicheReaderMutexLock(QuicheMutex * lock)19 QuicheReaderMutexLock::QuicheReaderMutexLock(QuicheMutex* lock) : lock_(lock) {
20   lock->ReaderLock();
21 }
22 
~QuicheReaderMutexLock()23 QuicheReaderMutexLock::~QuicheReaderMutexLock() { lock_->ReaderUnlock(); }
24 
QuicheWriterMutexLock(QuicheMutex * lock)25 QuicheWriterMutexLock::QuicheWriterMutexLock(QuicheMutex* lock) : lock_(lock) {
26   lock->WriterLock();
27 }
28 
~QuicheWriterMutexLock()29 QuicheWriterMutexLock::~QuicheWriterMutexLock() { lock_->WriterUnlock(); }
30 
31 }  // namespace quiche
32