diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-03-29 17:06:46 -0400 | 
|---|---|---|
| committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-06-27 11:36:02 -0400 | 
| commit | 7e2ce2f7f47e77b46d66dcefbd0c391e58421103 (patch) | |
| tree | d851ffad9019306160298aa721df295442f7749a /src/core/hle | |
| parent | a7ecd9e19cd2d46768c7c55e1aa7f5e4870d7c9e (diff) | |
SingleCore: Improve Cycle timing Behavior and replace mutex in global scheduler for spinlock.
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/kernel/scheduler.h | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.cpp | 3 | 
2 files changed, 3 insertions, 2 deletions
| diff --git a/src/core/hle/kernel/scheduler.h b/src/core/hle/kernel/scheduler.h index f63cc5085..10dc4b832 100644 --- a/src/core/hle/kernel/scheduler.h +++ b/src/core/hle/kernel/scheduler.h @@ -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()}; diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 05516a453..e988a3f22 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp @@ -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;  } | 
