| Index: webrtc/system_wrappers/source/rw_lock_generic.cc
|
| diff --git a/webrtc/system_wrappers/source/rw_lock_generic.cc b/webrtc/system_wrappers/source/rw_lock_generic.cc
|
| deleted file mode 100644
|
| index 9786155a634ba18b5a27920046514c68129999ed..0000000000000000000000000000000000000000
|
| --- a/webrtc/system_wrappers/source/rw_lock_generic.cc
|
| +++ /dev/null
|
| @@ -1,77 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -#include "webrtc/system_wrappers/source/rw_lock_generic.h"
|
| -
|
| -#include "webrtc/system_wrappers/include/condition_variable_wrapper.h"
|
| -#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
|
| -
|
| -namespace webrtc {
|
| -
|
| -RWLockGeneric::RWLockGeneric()
|
| - : readers_active_(0),
|
| - writer_active_(false),
|
| - readers_waiting_(0),
|
| - writers_waiting_(0) {
|
| - critical_section_ = CriticalSectionWrapper::CreateCriticalSection();
|
| - read_condition_ = ConditionVariableWrapper::CreateConditionVariable();
|
| - write_condition_ = ConditionVariableWrapper::CreateConditionVariable();
|
| -}
|
| -
|
| -RWLockGeneric::~RWLockGeneric() {
|
| - delete write_condition_;
|
| - delete read_condition_;
|
| - delete critical_section_;
|
| -}
|
| -
|
| -void RWLockGeneric::AcquireLockExclusive() {
|
| - CriticalSectionScoped cs(critical_section_);
|
| - if (writer_active_ || readers_active_ > 0) {
|
| - ++writers_waiting_;
|
| - while (writer_active_ || readers_active_ > 0) {
|
| - write_condition_->SleepCS(*critical_section_);
|
| - }
|
| - --writers_waiting_;
|
| - }
|
| - writer_active_ = true;
|
| -}
|
| -
|
| -void RWLockGeneric::ReleaseLockExclusive() {
|
| - CriticalSectionScoped cs(critical_section_);
|
| - writer_active_ = false;
|
| - if (writers_waiting_ > 0) {
|
| - write_condition_->Wake();
|
| - } else if (readers_waiting_ > 0) {
|
| - read_condition_->WakeAll();
|
| - }
|
| -}
|
| -
|
| -void RWLockGeneric::AcquireLockShared() {
|
| - CriticalSectionScoped cs(critical_section_);
|
| - if (writer_active_ || writers_waiting_ > 0) {
|
| - ++readers_waiting_;
|
| -
|
| - while (writer_active_ || writers_waiting_ > 0) {
|
| - read_condition_->SleepCS(*critical_section_);
|
| - }
|
| - --readers_waiting_;
|
| - }
|
| - ++readers_active_;
|
| -}
|
| -
|
| -void RWLockGeneric::ReleaseLockShared() {
|
| - CriticalSectionScoped cs(critical_section_);
|
| - --readers_active_;
|
| - if (readers_active_ == 0 && writers_waiting_ > 0) {
|
| - write_condition_->Wake();
|
| - }
|
| -}
|
| -
|
| -} // namespace webrtc
|
|
|