Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Unified Diff: webrtc/base/event.cc

Issue 2877023002: Move webrtc/{base => rtc_base} (Closed)
Patch Set: update presubmit.py and DEPS include rules Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/event.h ('k') | webrtc/base/event_tracer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/event.cc
diff --git a/webrtc/base/event.cc b/webrtc/base/event.cc
deleted file mode 100644
index 27506b3269f724c3eac4da979a7e12c652355e58..0000000000000000000000000000000000000000
--- a/webrtc/base/event.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright 2004 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/base/event.h"
-
-#if defined(WEBRTC_WIN)
-#include <windows.h>
-#elif defined(WEBRTC_POSIX)
-#include <pthread.h>
-#include <sys/time.h>
-#include <time.h>
-#else
-#error "Must define either WEBRTC_WIN or WEBRTC_POSIX."
-#endif
-
-#include "webrtc/base/checks.h"
-
-namespace rtc {
-
-#if defined(WEBRTC_WIN)
-
-Event::Event(bool manual_reset, bool initially_signaled) {
- event_handle_ = ::CreateEvent(nullptr, // Security attributes.
- manual_reset, initially_signaled,
- nullptr); // Name.
- RTC_CHECK(event_handle_);
-}
-
-Event::~Event() {
- CloseHandle(event_handle_);
-}
-
-void Event::Set() {
- SetEvent(event_handle_);
-}
-
-void Event::Reset() {
- ResetEvent(event_handle_);
-}
-
-bool Event::Wait(int milliseconds) {
- DWORD ms = (milliseconds == kForever) ? INFINITE : milliseconds;
- return (WaitForSingleObject(event_handle_, ms) == WAIT_OBJECT_0);
-}
-
-#elif defined(WEBRTC_POSIX)
-
-Event::Event(bool manual_reset, bool initially_signaled)
- : is_manual_reset_(manual_reset),
- event_status_(initially_signaled) {
- RTC_CHECK(pthread_mutex_init(&event_mutex_, nullptr) == 0);
- RTC_CHECK(pthread_cond_init(&event_cond_, nullptr) == 0);
-}
-
-Event::~Event() {
- pthread_mutex_destroy(&event_mutex_);
- pthread_cond_destroy(&event_cond_);
-}
-
-void Event::Set() {
- pthread_mutex_lock(&event_mutex_);
- event_status_ = true;
- pthread_cond_broadcast(&event_cond_);
- pthread_mutex_unlock(&event_mutex_);
-}
-
-void Event::Reset() {
- pthread_mutex_lock(&event_mutex_);
- event_status_ = false;
- pthread_mutex_unlock(&event_mutex_);
-}
-
-bool Event::Wait(int milliseconds) {
- int error = 0;
-
- struct timespec ts;
- if (milliseconds != kForever) {
- // Converting from seconds and microseconds (1e-6) plus
- // milliseconds (1e-3) to seconds and nanoseconds (1e-9).
-
-#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE
- // Use relative time version, which tends to be more efficient for
- // pthread implementations where provided (like on Android).
- ts.tv_sec = milliseconds / 1000;
- ts.tv_nsec = (milliseconds % 1000) * 1000000;
-#else
- struct timeval tv;
- gettimeofday(&tv, nullptr);
-
- ts.tv_sec = tv.tv_sec + (milliseconds / 1000);
- ts.tv_nsec = tv.tv_usec * 1000 + (milliseconds % 1000) * 1000000;
-
- // Handle overflow.
- if (ts.tv_nsec >= 1000000000) {
- ts.tv_sec++;
- ts.tv_nsec -= 1000000000;
- }
-#endif
- }
-
- pthread_mutex_lock(&event_mutex_);
- if (milliseconds != kForever) {
- while (!event_status_ && error == 0) {
-#ifdef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE
- error = pthread_cond_timedwait_relative_np(
- &event_cond_, &event_mutex_, &ts);
-#else
- error = pthread_cond_timedwait(&event_cond_, &event_mutex_, &ts);
-#endif
- }
- } else {
- while (!event_status_ && error == 0)
- error = pthread_cond_wait(&event_cond_, &event_mutex_);
- }
-
- // NOTE(liulk): Exactly one thread will auto-reset this event. All
- // the other threads will think it's unsignaled. This seems to be
- // consistent with auto-reset events in WEBRTC_WIN
- if (error == 0 && !is_manual_reset_)
- event_status_ = false;
-
- pthread_mutex_unlock(&event_mutex_);
-
- return (error == 0);
-}
-
-#endif
-
-} // namespace rtc
« no previous file with comments | « webrtc/base/event.h ('k') | webrtc/base/event_tracer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698