diff --git a/rpcs3/Emu/CPU/CPUThread.cpp b/rpcs3/Emu/CPU/CPUThread.cpp index 1ecd4bce82..704ccd52d6 100644 --- a/rpcs3/Emu/CPU/CPUThread.cpp +++ b/rpcs3/Emu/CPU/CPUThread.cpp @@ -557,29 +557,6 @@ void cpu_thread::operator()() // Register thread in g_cpu_array s_cpu_counter++; - atomic_wait_engine::set_notify_callback(g_use_rtm || get_class() != thread_class::ppu ? nullptr : +[](const void*, u64 progress) - { - static thread_local bool wait_set = false; - - cpu_thread* _cpu = get_current_cpu_thread(); - - // Wait flag isn't set asynchronously so this should be thread-safe - if (progress == 0 && _cpu->state.none_of(cpu_flag::wait + cpu_flag::temp)) - { - // Operation just started and syscall is imminent - _cpu->state += cpu_flag::wait + cpu_flag::temp; - wait_set = true; - return; - } - - if (progress == umax && std::exchange(wait_set, false)) - { - // Operation finished: need to clean wait flag - ensure(!_cpu->check_state()); - return; - } - }); - static thread_local struct thread_cleanup_t { cpu_thread* _this = nullptr; @@ -598,8 +575,6 @@ void cpu_thread::operator()() ptr->compare_and_swap(_this, nullptr); } - atomic_wait_engine::set_notify_callback(nullptr); - g_tls_log_control = [](const char*, u64){}; if (s_tls_thread_slot != umax) diff --git a/rpcs3/rpcs3qt/log_frame.cpp b/rpcs3/rpcs3qt/log_frame.cpp index c8359e4190..6a29ba38e5 100644 --- a/rpcs3/rpcs3qt/log_frame.cpp +++ b/rpcs3/rpcs3qt/log_frame.cpp @@ -81,7 +81,7 @@ struct gui_listener : logs::listener _new->msg += text; - queue.push(std::move(p)); + queue.push(std::move(p)); } } diff --git a/rpcs3/util/atomic.cpp b/rpcs3/util/atomic.cpp index 34b726c3b1..e154a7a4c9 100644 --- a/rpcs3/util/atomic.cpp +++ b/rpcs3/util/atomic.cpp @@ -67,9 +67,6 @@ static thread_local bool(*s_tls_wait_cb)(const void* data, u64 attempts, u64 sta // Callback for wait() function for a second custon condition, commonly passed with timeout static thread_local bool(*s_tls_one_time_wait_cb)(u64 attempts) = nullptr; -// Callback for notification functions for optimizations -static thread_local void(*s_tls_notify_cb)(const void* data, u64 progress) = nullptr; - // Compare data in memory with old value, and return true if they are equal static NEVER_INLINE bool ptr_cmp(const void* data, u32 old, atomic_wait::info* ext = nullptr) { @@ -1247,22 +1244,12 @@ void atomic_wait_engine::set_one_time_use_wait_callback(bool(*cb)(u64 progress)) s_tls_one_time_wait_cb = cb; } -void atomic_wait_engine::set_notify_callback(void(*cb)(const void*, u64)) -{ - s_tls_notify_cb = cb; -} - void atomic_wait_engine::notify_one(const void* data) { - if (s_tls_notify_cb) - s_tls_notify_cb(data, 0); - #ifdef __linux__ if (has_waitv()) { futex(const_cast(data), FUTEX_WAKE_PRIVATE, 1); - if (s_tls_notify_cb) - s_tls_notify_cb(data, -1); return; } #endif @@ -1277,23 +1264,15 @@ void atomic_wait_engine::notify_one(const void* data) return false; }); - - if (s_tls_notify_cb) - s_tls_notify_cb(data, -1); } SAFE_BUFFERS(void) atomic_wait_engine::notify_all(const void* data) { - if (s_tls_notify_cb) - s_tls_notify_cb(data, 0); - #ifdef __linux__ if (has_waitv()) { futex(const_cast(data), FUTEX_WAKE_PRIVATE, INT_MAX); - if (s_tls_notify_cb) - s_tls_notify_cb(data, -1); return; } #endif @@ -1369,9 +1348,6 @@ atomic_wait_engine::notify_all(const void* data) { cond_free(~*(std::end(cond_ids) - i - 1)); } - - if (s_tls_notify_cb) - s_tls_notify_cb(data, -1); } namespace atomic_wait diff --git a/rpcs3/util/atomic.hpp b/rpcs3/util/atomic.hpp index 7d839b07c3..abc4df9445 100644 --- a/rpcs3/util/atomic.hpp +++ b/rpcs3/util/atomic.hpp @@ -257,7 +257,6 @@ public: static void notify_all(const void* data); static void set_wait_callback(bool(*cb)(const void* data, u64 attempts, u64 stamp0)); - static void set_notify_callback(void(*cb)(const void* data, u64 progress)); static void set_one_time_use_wait_callback(bool (*cb)(u64 progress)); };