KConditionVariable/KAddressArbiter: no need for global compare thread
This commit is contained in:
@@ -17,8 +17,6 @@
|
||||
|
||||
namespace ams::kern {
|
||||
|
||||
constinit KThread g_cv_arbiter_compare_thread;
|
||||
|
||||
namespace {
|
||||
|
||||
ALWAYS_INLINE bool ReadFromUser(u32 *out, KProcessAddress address) {
|
||||
@@ -179,9 +177,8 @@ namespace ams::kern {
|
||||
int num_waiters = 0;
|
||||
{
|
||||
KScopedSchedulerLock sl;
|
||||
g_cv_arbiter_compare_thread.SetupForConditionVariableCompare(cv_key, -1);
|
||||
|
||||
auto it = this->tree.nfind(g_cv_arbiter_compare_thread);
|
||||
auto it = this->tree.nfind_light({ cv_key, -1 });
|
||||
while ((it != this->tree.end()) && (count <= 0 || num_waiters < count) && (it->GetConditionVariableKey() == cv_key)) {
|
||||
KThread *target_thread = std::addressof(*it);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user