diff --git a/webrtc/base/thread.cc b/webrtc/base/thread.cc index b7d448656d..ed0c446741 100644 --- a/webrtc/base/thread.cc +++ b/webrtc/base/thread.cc @@ -228,8 +228,7 @@ bool Thread::Start(Runnable* runnable) { init->thread = this; init->runnable = runnable; #if defined(WEBRTC_WIN) - thread_ = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PreRun, init, 0, - &thread_id_); + thread_ = CreateThread(NULL, 0, PreRun, init, 0, &thread_id_); if (thread_) { running_.Set(); } else { @@ -308,7 +307,12 @@ void Thread::AssertBlockingIsAllowedOnCurrentThread() { #endif } +// static +#if defined(WEBRTC_WIN) +DWORD WINAPI Thread::PreRun(LPVOID pv) { +#else void* Thread::PreRun(void* pv) { +#endif ThreadInit* init = static_cast(pv); ThreadManager::Instance()->SetCurrentThread(init->thread); rtc::SetCurrentThreadName(init->thread->name_.c_str()); @@ -325,7 +329,11 @@ void* Thread::PreRun(void* pv) { init->thread->Run(); } delete init; - return NULL; +#ifdef WEBRTC_WIN + return 0; +#else + return nullptr; +#endif } } diff --git a/webrtc/base/thread.h b/webrtc/base/thread.h index 97e69415cd..29b78e1845 100644 --- a/webrtc/base/thread.h +++ b/webrtc/base/thread.h @@ -238,7 +238,11 @@ class LOCKABLE Thread : public MessageQueue { friend class ScopedDisallowBlockingCalls; private: +#if defined(WEBRTC_WIN) + static DWORD WINAPI PreRun(LPVOID context); +#else static void *PreRun(void *pv); +#endif // ThreadManager calls this instead WrapCurrent() because // ThreadManager::Instance() cannot be used while ThreadManager is