| Index: webrtc/system_wrappers/source/thread_win.cc
|
| diff --git a/webrtc/system_wrappers/source/thread_win.cc b/webrtc/system_wrappers/source/thread_win.cc
|
| deleted file mode 100644
|
| index b1c513c250ef8988a82a662d802b14a48ba76225..0000000000000000000000000000000000000000
|
| --- a/webrtc/system_wrappers/source/thread_win.cc
|
| +++ /dev/null
|
| @@ -1,101 +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/thread_win.h"
|
| -
|
| -#include <process.h>
|
| -#include <stdio.h>
|
| -#include <windows.h>
|
| -
|
| -#include "webrtc/base/checks.h"
|
| -#include "webrtc/system_wrappers/include/trace.h"
|
| -
|
| -namespace webrtc {
|
| -namespace {
|
| -void CALLBACK RaiseFlag(ULONG_PTR param) {
|
| - *reinterpret_cast<bool*>(param) = true;
|
| -}
|
| -}
|
| -
|
| -ThreadWindows::ThreadWindows(ThreadRunFunction func, void* obj,
|
| - const char* thread_name)
|
| - : run_function_(func),
|
| - obj_(obj),
|
| - stop_(false),
|
| - thread_(NULL),
|
| - name_(thread_name ? thread_name : "webrtc") {
|
| - RTC_DCHECK(func);
|
| -}
|
| -
|
| -ThreadWindows::~ThreadWindows() {
|
| - RTC_DCHECK(main_thread_.CalledOnValidThread());
|
| - RTC_DCHECK(!thread_);
|
| -}
|
| -
|
| -// static
|
| -DWORD WINAPI ThreadWindows::StartThread(void* param) {
|
| - static_cast<ThreadWindows*>(param)->Run();
|
| - return 0;
|
| -}
|
| -
|
| -bool ThreadWindows::Start() {
|
| - RTC_DCHECK(main_thread_.CalledOnValidThread());
|
| - RTC_DCHECK(!thread_);
|
| -
|
| - stop_ = false;
|
| -
|
| - // See bug 2902 for background on STACK_SIZE_PARAM_IS_A_RESERVATION.
|
| - // Set the reserved stack stack size to 1M, which is the default on Windows
|
| - // and Linux.
|
| - DWORD thread_id;
|
| - thread_ = ::CreateThread(NULL, 1024 * 1024, &StartThread, this,
|
| - STACK_SIZE_PARAM_IS_A_RESERVATION, &thread_id);
|
| - if (!thread_ ) {
|
| - RTC_DCHECK(false) << "CreateThread failed";
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool ThreadWindows::Stop() {
|
| - RTC_DCHECK(main_thread_.CalledOnValidThread());
|
| - if (thread_) {
|
| - // Set stop_ to |true| on the worker thread.
|
| - QueueUserAPC(&RaiseFlag, thread_, reinterpret_cast<ULONG_PTR>(&stop_));
|
| - WaitForSingleObject(thread_, INFINITE);
|
| - CloseHandle(thread_);
|
| - thread_ = nullptr;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool ThreadWindows::SetPriority(ThreadPriority priority) {
|
| - RTC_DCHECK(main_thread_.CalledOnValidThread());
|
| - return thread_ && SetThreadPriority(thread_, priority);
|
| -}
|
| -
|
| -void ThreadWindows::Run() {
|
| - if (!name_.empty())
|
| - rtc::SetCurrentThreadName(name_.c_str());
|
| -
|
| - do {
|
| - // The interface contract of Start/Stop is that for a successfull call to
|
| - // Start, there should be at least one call to the run function. So we
|
| - // call the function before checking |stop_|.
|
| - if (!run_function_(obj_))
|
| - break;
|
| - // Alertable sleep to permit RaiseFlag to run and update |stop_|.
|
| - SleepEx(0, true);
|
| - } while (!stop_);
|
| -}
|
| -
|
| -} // namespace webrtc
|
|
|