mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-25 20:22:30 +01:00
init_mutex.hpp: More fixes
This commit is contained in:
parent
5e24167d6c
commit
4512c10ce5
@ -63,9 +63,6 @@ namespace stx
|
|||||||
|
|
||||||
if (val & c_init_bit)
|
if (val & c_init_bit)
|
||||||
{
|
{
|
||||||
// Failure
|
|
||||||
_this = nullptr;
|
|
||||||
|
|
||||||
if constexpr (Forced()())
|
if constexpr (Forced()())
|
||||||
{
|
{
|
||||||
// Forced reset
|
// Forced reset
|
||||||
@ -73,12 +70,23 @@ namespace stx
|
|||||||
|
|
||||||
while (val != 1)
|
while (val != 1)
|
||||||
{
|
{
|
||||||
|
if constexpr (sizeof...(FAndArgs))
|
||||||
|
{
|
||||||
|
if (!invoked_func)
|
||||||
|
{
|
||||||
|
invoke_callback(0, std::forward<FAndArgs>(args)...);
|
||||||
|
invoked_func = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Wait for other users to finish their work
|
// Wait for other users to finish their work
|
||||||
_this->m_state.wait(val);
|
_this->m_state.wait(val);
|
||||||
val = _this->m_state;
|
val = _this->m_state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Failure
|
||||||
|
_this = nullptr;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user