Optimizations (#1680)

* Optimizations

1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)

* any_pod<> implemented

Aliases: any16, any32, any64
rsx::make_command fixed
This commit is contained in:
Ivan 2016-04-25 13:49:12 +03:00
parent 75fe95eeb1
commit da7472fe81
96 changed files with 2086 additions and 1772 deletions

View file

@ -14,15 +14,14 @@ void lv2_int_serv_t::join(PPUThread& ppu, lv2_lock_t lv2_lock)
{
// Use is_joining to stop interrupt thread and signal
thread->is_joining = true;
thread->cv.notify_one();
thread->notify();
// Start joining
while (!(thread->state & cpu_state::exit))
{
CHECK_EMU_STATUS;
ppu.cv.wait_for(lv2_lock, std::chrono::milliseconds(1));
get_current_thread_cv().wait_for(lv2_lock, std::chrono::milliseconds(1));
}
// Cleanup
@ -122,14 +121,14 @@ s32 _sys_interrupt_thread_establish(vm::ptr<u32> ih, u32 intrtag, u32 intrthread
continue;
}
ppu.cv.wait(lv2_lock);
get_current_thread_cv().wait(lv2_lock);
}
ppu.state += cpu_state::exit;
};
it->state -= cpu_state::stop;
it->safe_notify();
it->lock_notify();
*ih = handler->id;