Fix IsOnSeparateCPUThread(), was always false.

Erp, because of detach().
This commit is contained in:
Unknown W. Brackets 2014-04-28 23:22:46 -07:00
parent f052778c2d
commit d97c229eaf
2 changed files with 5 additions and 2 deletions

View file

@ -71,7 +71,7 @@ Event *eventPool = 0;
Event *eventTsPool = 0;
int allocatedTsEvents = 0;
// Optimization to skip MoveEvents when possible.
volatile u32 hasTsEvents = false;
volatile u32 hasTsEvents = 0;
// Downcount has been moved to currentMIPS, to save a couple of clocks in every ARM JIT block
// as we can already reach that structure through a register.

View file

@ -76,6 +76,7 @@ GlobalUIState globalUIState;
static CoreParameter coreParameter;
static PSPMixer *mixer;
static std::thread *cpuThread = NULL;
static std::thread::id cpuThreadID;
static recursive_mutex cpuThreadLock;
static condition_variable cpuThreadCond;
static condition_variable cpuThreadReplyCond;
@ -108,7 +109,7 @@ void Audio_Init() {
bool IsOnSeparateCPUThread() {
if (cpuThread != NULL) {
return cpuThread->get_id() == std::this_thread::get_id();
return cpuThreadID == std::this_thread::get_id();
} else {
return false;
}
@ -336,6 +337,7 @@ bool PSP_InitStart(const CoreParameter &coreParam, std::string *error_string) {
XSetThreadProcessor(cpuThread->native_handle(), 2);
ResumeThread(cpuThread->native_handle());
#endif
cpuThreadID = cpuThread->get_id();
cpuThread->detach();
} else {
CPU_Init();
@ -411,6 +413,7 @@ void PSP_Shutdown() {
CPU_WaitStatus(cpuThreadReplyCond, &CPU_IsShutdown);
delete cpuThread;
cpuThread = 0;
cpuThreadID = std::thread::id();
} else {
CPU_Shutdown();
}