thread/Thread: move code to Run()
This commit is contained in:
parent
82c66ce078
commit
5ba5bc8ba1
|
@ -74,6 +74,26 @@ Thread::Join()
|
|||
#endif
|
||||
}
|
||||
|
||||
inline void
|
||||
Thread::Run()
|
||||
{
|
||||
#ifndef WIN32
|
||||
#ifndef NDEBUG
|
||||
/* this works around a race condition that causes an assertion
|
||||
failure due to IsInside() spuriously returning false right
|
||||
after the thread has been created, and the calling thread
|
||||
hasn't initialised "defined" yet */
|
||||
defined = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
f(ctx);
|
||||
|
||||
#ifdef ANDROID
|
||||
Java::DetachCurrentThread();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
DWORD WINAPI
|
||||
|
@ -81,7 +101,7 @@ Thread::ThreadProc(LPVOID ctx)
|
|||
{
|
||||
Thread &thread = *(Thread *)ctx;
|
||||
|
||||
thread.f(thread.ctx);
|
||||
thread.Run();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -92,19 +112,7 @@ Thread::ThreadProc(void *ctx)
|
|||
{
|
||||
Thread &thread = *(Thread *)ctx;
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* this works around a race condition that causes an assertion
|
||||
failure due to IsInside() spuriously returning false right
|
||||
after the thread has been created, and the calling thread
|
||||
hasn't initialised "defined" yet */
|
||||
thread.defined = true;
|
||||
#endif
|
||||
|
||||
thread.f(thread.ctx);
|
||||
|
||||
#ifdef ANDROID
|
||||
Java::DetachCurrentThread();
|
||||
#endif
|
||||
thread.Run();
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -93,6 +93,8 @@ public:
|
|||
void Join();
|
||||
|
||||
private:
|
||||
void Run();
|
||||
|
||||
#ifdef WIN32
|
||||
static DWORD WINAPI ThreadProc(LPVOID ctx);
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue