Replaced Common::Thread with a partial implementation of std::thread. (rvalue references are used if available, <thread> is used if possible) Eliminates the need to use dynamic memory allocation for threads, so it's impossible to forget to delete a thread or set a pointer to NULL. Enables use of type-safe thread functions, no need to cast to and from void*. I've made sure the code compiles in vs08 and tested the functionality of "StdThread.h" on Linux so I'm hoping everything will work :p. In the future "StdThread.h" can be removed (maybe when OS X ships with gcc 4.4 and vs2015 is released :p).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6933 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Jordan Woyak
2011-01-27 20:47:58 +00:00
parent 0371f15c23
commit 2c05c49a04
29 changed files with 484 additions and 396 deletions

View File

@ -108,7 +108,7 @@ void UpdateFPSDisplay(const char *text)
}
#if defined(HAVE_X11) && HAVE_X11
THREAD_RETURN XEventThread(void *pArg);
void XEventThread();
void CreateXWindow (void)
{
@ -137,7 +137,7 @@ void CreateXWindow (void)
XMapRaised(GLWin.evdpy, GLWin.win);
XSync(GLWin.evdpy, True);
GLWin.xEventThread = new Common::Thread(XEventThread, NULL);
GLWin.xEventThread = std::thread(XEventThread);
}
void DestroyXWindow(void)
@ -150,7 +150,7 @@ void DestroyXWindow(void)
XFreeColormap(GLWin.evdpy, GLWin.attr.colormap);
}
THREAD_RETURN XEventThread(void *pArg)
void XEventThread()
{
// Free look variables
static bool mouseLookEnabled = false;
@ -305,7 +305,6 @@ THREAD_RETURN XEventThread(void *pArg)
}
Common::SleepCurrentThread(20);
}
return 0;
}
#endif