fix cv using wrong handle
This commit is contained in:
parent
a8ad54815e
commit
1d43fee5a1
@ -1518,7 +1518,8 @@ void sys_condition_variable_wait(struct sys_condition_variable *cv, struct sys_m
|
||||
atomic_i64_inc_eval(&cv->num_waiters);
|
||||
mutex->owner_tid = 0;
|
||||
#endif
|
||||
SleepConditionVariableSRW((PCONDITION_VARIABLE)cv->handle, (SRWLOCK *)&mutex->handle, INFINITE, 0);
|
||||
struct win32_condition_variable *w32cv = (struct win32_condition_variable *)cv->handle;
|
||||
SleepConditionVariableSRW(&w32cv->condition_variable, (SRWLOCK *)&mutex->handle, INFINITE, 0);
|
||||
#if RTC
|
||||
mutex->owner_tid = (u64)GetCurrentThreadId();
|
||||
atomic_i64_dec_eval(&cv->num_waiters);
|
||||
@ -1532,8 +1533,9 @@ void sys_condition_variable_wait_time(struct sys_condition_variable *cv, struct
|
||||
atomic_i64_inc_eval(&cv->num_waiters);
|
||||
mutex->owner_tid = 0;
|
||||
#endif
|
||||
struct win32_condition_variable *w32cv = (struct win32_condition_variable *)cv->handle;
|
||||
u32 ms = (u32)math_round_to_int((f32)seconds * 1000.f);
|
||||
SleepConditionVariableSRW((PCONDITION_VARIABLE)cv->handle, (SRWLOCK *)&mutex->handle, ms, 0);
|
||||
SleepConditionVariableSRW(&w32cv->condition_variable, (SRWLOCK *)&mutex->handle, ms, 0);
|
||||
#if RTC
|
||||
mutex->owner_tid = (u64)GetCurrentThreadId();
|
||||
atomic_i64_dec_eval(&cv->num_waiters);
|
||||
@ -1543,13 +1545,15 @@ void sys_condition_variable_wait_time(struct sys_condition_variable *cv, struct
|
||||
void sys_condition_variable_signal(struct sys_condition_variable *cv)
|
||||
{
|
||||
__prof;
|
||||
WakeConditionVariable((PCONDITION_VARIABLE)cv->handle);
|
||||
struct win32_condition_variable *w32cv = (struct win32_condition_variable *)cv->handle;
|
||||
WakeConditionVariable(&w32cv->condition_variable);
|
||||
}
|
||||
|
||||
void sys_condition_variable_broadcast(struct sys_condition_variable *cv)
|
||||
{
|
||||
__prof;
|
||||
WakeAllConditionVariable((PCONDITION_VARIABLE)cv->handle);
|
||||
struct win32_condition_variable *w32cv = (struct win32_condition_variable *)cv->handle;
|
||||
WakeAllConditionVariable(&w32cv->condition_variable);
|
||||
}
|
||||
|
||||
/* ========================== *
|
||||
|
||||
Loading…
Reference in New Issue
Block a user