SingleCore: Improve Cycle timing Behavior and replace mutex in global scheduler for spinlock.

This commit is contained in:
Fernando Sahmkow 2020-03-29 17:06:46 -04:00
parent a7ecd9e19c
commit 7e2ce2f7f4
3 changed files with 4 additions and 2 deletions

View file

@ -188,7 +188,7 @@ private:
/// Scheduler lock mechanisms.
bool is_locked{};
std::mutex inner_lock{}; // TODO(Blinkhawk): Replace for a SpinLock
Common::SpinLock inner_lock{};
std::atomic<s64> scope_lock{};
Core::EmuThreadHandle current_owner{Core::EmuThreadHandle::InvalidHandle()};

View file

@ -185,7 +185,8 @@ ResultCode ServerSession::CompleteSyncRequest() {
ResultCode ServerSession::HandleSyncRequest(std::shared_ptr<Thread> thread,
Core::Memory::Memory& memory) {
ResultCode result = QueueSyncRequest(std::move(thread), memory);
Core::System::GetInstance().CoreTiming().ScheduleEvent(0, request_event, {});
const u64 delay = kernel.IsMulticore() ? 0U : 20000U;
Core::System::GetInstance().CoreTiming().ScheduleEvent(delay, request_event, {});
return result;
}