
The method was flagged by Chrome engineers as dubious since it uses TerminateThread. As it turns out, we don't use this method anywhere, so we can simply remove it! :) BUG=1066 Review URL: https://webrtc-codereview.appspot.com/938012 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3065 4adac7df-926f-26a2-2b94-8c16560cd09d
73 lines
2.1 KiB
C++
73 lines
2.1 KiB
C++
/*
|
|
* Copyright (c) 2012 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.
|
|
*/
|
|
|
|
#ifndef WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_POSIX_H_
|
|
#define WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_POSIX_H_
|
|
|
|
#include "thread_wrapper.h"
|
|
#include <pthread.h>
|
|
|
|
namespace webrtc {
|
|
|
|
class CriticalSectionWrapper;
|
|
class EventWrapper;
|
|
|
|
int ConvertToSystemPriority(ThreadPriority priority, int minPrio, int maxPrio);
|
|
|
|
class ThreadPosix : public ThreadWrapper
|
|
{
|
|
public:
|
|
static ThreadWrapper* Create(ThreadRunFunction func, ThreadObj obj,
|
|
ThreadPriority prio, const char* threadName);
|
|
|
|
ThreadPosix(ThreadRunFunction func, ThreadObj obj, ThreadPriority prio,
|
|
const char* threadName);
|
|
~ThreadPosix();
|
|
|
|
// From ThreadWrapper
|
|
virtual void SetNotAlive();
|
|
virtual bool Start(unsigned int& id);
|
|
// Not implemented on Mac
|
|
virtual bool SetAffinity(const int* processorNumbers,
|
|
unsigned int amountOfProcessors);
|
|
virtual bool Stop();
|
|
|
|
void Run();
|
|
|
|
private:
|
|
int Construct();
|
|
|
|
private:
|
|
// processing function
|
|
ThreadRunFunction _runFunction;
|
|
ThreadObj _obj;
|
|
|
|
// internal state
|
|
CriticalSectionWrapper* _crit_state; // Protects _alive and _dead
|
|
bool _alive;
|
|
bool _dead;
|
|
ThreadPriority _prio;
|
|
EventWrapper* _event;
|
|
|
|
// zero-terminated thread name string
|
|
char _name[kThreadMaxNameLength];
|
|
bool _setThreadName;
|
|
|
|
// handle to thread
|
|
#if (defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID))
|
|
pid_t _pid;
|
|
#endif
|
|
pthread_attr_t _attr;
|
|
pthread_t _thread;
|
|
};
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_POSIX_H_
|