mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-03 21:41:26 +12:00
Add dummy alert param to thread_ctrl::wait API
This commit is contained in:
parent
86fb2993ad
commit
8031180373
3 changed files with 9 additions and 9 deletions
|
@ -1777,7 +1777,7 @@ void thread_base::finalize() noexcept
|
||||||
--g_thread_count;
|
--g_thread_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void thread_ctrl::_wait_for(u64 usec)
|
void thread_ctrl::_wait_for(u64 usec, bool alert /* true */)
|
||||||
{
|
{
|
||||||
auto _this = g_tls_this_thread;
|
auto _this = g_tls_this_thread;
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ class thread_ctrl final
|
||||||
static atomic_t<native_core_arrangement> g_native_core_layout;
|
static atomic_t<native_core_arrangement> g_native_core_layout;
|
||||||
|
|
||||||
// Internal waiting function, may throw. Infinite value is -1.
|
// Internal waiting function, may throw. Infinite value is -1.
|
||||||
static void _wait_for(u64 usec);
|
static void _wait_for(u64 usec, bool alert);
|
||||||
|
|
||||||
friend class thread_base;
|
friend class thread_base;
|
||||||
|
|
||||||
|
@ -238,15 +238,15 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait once with timeout. May spuriously return false.
|
// Wait once with timeout. May spuriously return false.
|
||||||
static inline void wait_for(u64 usec)
|
static inline void wait_for(u64 usec, bool alert = true)
|
||||||
{
|
{
|
||||||
_wait_for(usec);
|
_wait_for(usec, alert);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait.
|
// Wait.
|
||||||
static inline void wait()
|
static inline void wait()
|
||||||
{
|
{
|
||||||
_wait_for(-1);
|
_wait_for(-1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait until pred().
|
// Wait until pred().
|
||||||
|
@ -260,7 +260,7 @@ public:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
_wait_for(-1);
|
_wait_for(-1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ public:
|
||||||
|
|
||||||
if (g_cfg.core.sleep_timers_accuracy < (is_usleep ? sleep_timers_accuracy_level::_usleep : sleep_timers_accuracy_level::_all_timers))
|
if (g_cfg.core.sleep_timers_accuracy < (is_usleep ? sleep_timers_accuracy_level::_usleep : sleep_timers_accuracy_level::_all_timers))
|
||||||
{
|
{
|
||||||
thread_ctrl::wait_for(remaining);
|
thread_ctrl::wait_for(remaining, !is_usleep);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -269,10 +269,10 @@ public:
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
// Do not wait for the last quantum to avoid loss of accuracy
|
// Do not wait for the last quantum to avoid loss of accuracy
|
||||||
thread_ctrl::wait_for(remaining - ((remaining % host_min_quantum) + host_min_quantum));
|
thread_ctrl::wait_for(remaining - ((remaining % host_min_quantum) + host_min_quantum), !is_usleep);
|
||||||
#else
|
#else
|
||||||
// Wait on multiple of min quantum for large durations to avoid overloading low thread cpus
|
// Wait on multiple of min quantum for large durations to avoid overloading low thread cpus
|
||||||
thread_ctrl::wait_for(remaining - (remaining % host_min_quantum));
|
thread_ctrl::wait_for(remaining - (remaining % host_min_quantum), !is_usleep);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue