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

Unified Diff: src/utils/SkCondVar.cpp

Issue 1192573003: Add and use SkSemaphore (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: typo Created 5 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 | « src/utils/SkCondVar.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/utils/SkCondVar.cpp
diff --git a/src/utils/SkCondVar.cpp b/src/utils/SkCondVar.cpp
deleted file mode 100644
index 12aca7613e0a39fc0871123abbbd3eeb528fdbe4..0000000000000000000000000000000000000000
--- a/src/utils/SkCondVar.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkCondVar.h"
-
-#if defined(SK_BUILD_FOR_WIN32)
- static void (WINAPI *initialize_condition_variable)(PCONDITION_VARIABLE);
- static BOOL (WINAPI *sleep_condition_variable)(PCONDITION_VARIABLE, PCRITICAL_SECTION, DWORD);
- static void (WINAPI *wake_condition_variable)(PCONDITION_VARIABLE);
- static void (WINAPI *wake_all_condition_variable)(PCONDITION_VARIABLE);
-
- template <typename T>
- static void set_fn_ptr(T* ptr, FARPROC fn) { *ptr = reinterpret_cast<T>(fn); }
-#endif
-
-bool SkCondVar::Supported() {
-#ifdef SK_BUILD_FOR_WIN32
- // If we're >= Vista we'll find these functions. Otherwise (XP) SkCondVar is not supported.
- HMODULE kernel32 = GetModuleHandleA("kernel32.dll");
- set_fn_ptr(&initialize_condition_variable,
- GetProcAddress(kernel32, "InitializeConditionVariable"));
- set_fn_ptr(&sleep_condition_variable,
- GetProcAddress(kernel32, "SleepConditionVariableCS"));
- set_fn_ptr(&wake_condition_variable,
- GetProcAddress(kernel32, "WakeConditionVariable"));
- set_fn_ptr(&wake_all_condition_variable,
- GetProcAddress(kernel32, "WakeAllConditionVariable"));
- return initialize_condition_variable
- && sleep_condition_variable
- && wake_condition_variable
- && wake_all_condition_variable;
-#else
- return true;
-#endif
-}
-
-SkCondVar::SkCondVar() {
-#ifdef SK_BUILD_FOR_WIN32
- InitializeCriticalSection(&fCriticalSection);
- SkASSERT(initialize_condition_variable);
- initialize_condition_variable(&fCondition);
-#else
- pthread_mutex_init(&fMutex, NULL /* default mutex attr */);
- pthread_cond_init(&fCond, NULL /* default cond attr */);
-#endif
-}
-
-SkCondVar::~SkCondVar() {
-#ifdef SK_BUILD_FOR_WIN32
- DeleteCriticalSection(&fCriticalSection);
- // No need to clean up fCondition.
-#else
- pthread_mutex_destroy(&fMutex);
- pthread_cond_destroy(&fCond);
-#endif
-}
-
-void SkCondVar::lock() {
-#ifdef SK_BUILD_FOR_WIN32
- EnterCriticalSection(&fCriticalSection);
-#else
- pthread_mutex_lock(&fMutex);
-#endif
-}
-
-void SkCondVar::unlock() {
-#ifdef SK_BUILD_FOR_WIN32
- LeaveCriticalSection(&fCriticalSection);
-#else
- pthread_mutex_unlock(&fMutex);
-#endif
-}
-
-void SkCondVar::wait() {
-#ifdef SK_BUILD_FOR_WIN32
- SkASSERT(sleep_condition_variable);
- sleep_condition_variable(&fCondition, &fCriticalSection, INFINITE);
-#else
- pthread_cond_wait(&fCond, &fMutex);
-#endif
-}
-
-void SkCondVar::signal() {
-#ifdef SK_BUILD_FOR_WIN32
- SkASSERT(wake_condition_variable);
- wake_condition_variable(&fCondition);
-#else
- pthread_cond_signal(&fCond);
-#endif
-}
-
-void SkCondVar::broadcast() {
-#ifdef SK_BUILD_FOR_WIN32
- SkASSERT(wake_all_condition_variable);
- wake_all_condition_variable(&fCondition);
-#else
- pthread_cond_broadcast(&fCond);
-#endif
-}
« no previous file with comments | « src/utils/SkCondVar.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698