Replace notifier::lock_shared() with try_lock_shared()

Also add notify_one(), try_lock() and unlock()
Move some code in cond.cpp
This commit is contained in:
Nekotekina 2018-05-18 23:19:44 +03:00
parent 8d5bbfb850
commit a33f297315
3 changed files with 134 additions and 64 deletions

View file

@ -1733,7 +1733,9 @@ s64 SPUThread::get_ch_value(u32 ch)
fmt::throw_exception("Not supported: event mask 0x%x" HERE, mask1);
}
std::shared_lock<notifier> pseudo_lock(vm::reservation_notifier(raddr, 128));
std::shared_lock<notifier> pseudo_lock(vm::reservation_notifier(raddr, 128), std::try_to_lock);
verify(HERE), pseudo_lock;
while (res = get_events(), !res)
{