blob: 8ae626df66b91bcaacec27e3240aa5af9af21098 [file] [log] [blame]
amistrydf6b66ee2016-06-01 02:52:441// Copyright 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 "base/synchronization/read_write_lock.h"
6
7namespace base {
8namespace subtle {
9
10ReadWriteLock::ReadWriteLock() : native_handle_(SRWLOCK_INIT) {}
11
12ReadWriteLock::~ReadWriteLock() = default;
13
14void ReadWriteLock::ReadAcquire() {
15 ::AcquireSRWLockShared(&native_handle_);
16}
17
18void ReadWriteLock::ReadRelease() {
19 ::ReleaseSRWLockShared(&native_handle_);
20}
21
22void ReadWriteLock::WriteAcquire() {
23 ::AcquireSRWLockExclusive(&native_handle_);
24}
25
26void ReadWriteLock::WriteRelease() {
27 ::ReleaseSRWLockExclusive(&native_handle_);
28}
29
30} // namespace subtle
31} // namespace base