summaryrefslogtreecommitdiffstats
path: root/base/condition_variable_posix.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-01 23:16:20 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-01 23:16:20 +0000
commitbc581a6829fe49e43f4869075781d6dc94843f09 (patch)
treea94363488dadff28fe2c03f3a169b6ad2eeb02e8 /base/condition_variable_posix.cc
parent10f33b1bd6c6adb6306759a45bf3a5c18221d878 (diff)
downloadchromium_src-bc581a6829fe49e43f4869075781d6dc94843f09.zip
chromium_src-bc581a6829fe49e43f4869075781d6dc94843f09.tar.gz
chromium_src-bc581a6829fe49e43f4869075781d6dc94843f09.tar.bz2
Move base/lock and base/condition_variable to base/synchronization/
I kept a base/lock.h in place with a using statement to avoid updating all callers in one CL. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6018013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70363 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/condition_variable_posix.cc')
-rw-r--r--base/condition_variable_posix.cc76
1 files changed, 0 insertions, 76 deletions
diff --git a/base/condition_variable_posix.cc b/base/condition_variable_posix.cc
deleted file mode 100644
index 5d9ccb4..0000000
--- a/base/condition_variable_posix.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium 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 "base/condition_variable.h"
-
-#include <errno.h>
-#include <sys/time.h>
-
-#include "base/lock.h"
-#include "base/logging.h"
-#include "base/time.h"
-
-using base::Time;
-using base::TimeDelta;
-
-ConditionVariable::ConditionVariable(Lock* user_lock)
- : user_mutex_(user_lock->lock_.os_lock())
-#if !defined(NDEBUG)
- , user_lock_(user_lock)
-#endif
-{
- int rv = pthread_cond_init(&condition_, NULL);
- DCHECK(rv == 0);
-}
-
-ConditionVariable::~ConditionVariable() {
- int rv = pthread_cond_destroy(&condition_);
- DCHECK(rv == 0);
-}
-
-void ConditionVariable::Wait() {
-#if !defined(NDEBUG)
- user_lock_->CheckHeldAndUnmark();
-#endif
- int rv = pthread_cond_wait(&condition_, user_mutex_);
- DCHECK(rv == 0);
-#if !defined(NDEBUG)
- user_lock_->CheckUnheldAndMark();
-#endif
-}
-
-void ConditionVariable::TimedWait(const TimeDelta& max_time) {
- int64 usecs = max_time.InMicroseconds();
-
- // The timeout argument to pthread_cond_timedwait is in absolute time.
- struct timeval now;
- gettimeofday(&now, NULL);
-
- struct timespec abstime;
- abstime.tv_sec = now.tv_sec + (usecs / Time::kMicrosecondsPerSecond);
- abstime.tv_nsec = (now.tv_usec + (usecs % Time::kMicrosecondsPerSecond)) *
- Time::kNanosecondsPerMicrosecond;
- abstime.tv_sec += abstime.tv_nsec / Time::kNanosecondsPerSecond;
- abstime.tv_nsec %= Time::kNanosecondsPerSecond;
- DCHECK(abstime.tv_sec >= now.tv_sec); // Overflow paranoia
-
-#if !defined(NDEBUG)
- user_lock_->CheckHeldAndUnmark();
-#endif
- int rv = pthread_cond_timedwait(&condition_, user_mutex_, &abstime);
- DCHECK(rv == 0 || rv == ETIMEDOUT);
-#if !defined(NDEBUG)
- user_lock_->CheckUnheldAndMark();
-#endif
-}
-
-void ConditionVariable::Broadcast() {
- int rv = pthread_cond_broadcast(&condition_);
- DCHECK(rv == 0);
-}
-
-void ConditionVariable::Signal() {
- int rv = pthread_cond_signal(&condition_);
- DCHECK(rv == 0);
-}