diff --git a/src/c/threads/condition_variable.d b/src/c/threads/condition_variable.d index 4c66cdbc6..d2a47ffc4 100644 --- a/src/c/threads/condition_variable.d +++ b/src/c/threads/condition_variable.d @@ -86,21 +86,15 @@ mp_condition_variable_timedwait(cl_object cv, cl_object lock, cl_object seconds) cl_object mp_condition_variable_signal(cl_object cv) { - if (cv->condition_variable.waiter != Cnil) { - cv->condition_variable.waiter = Cnil; - ecl_wakeup_waiters(ecl_process_env(), cv, - ECL_WAKEUP_ONE | ECL_WAKEUP_RESET_FLAG); - } + ecl_wakeup_waiters(ecl_process_env(), cv, + ECL_WAKEUP_ONE | ECL_WAKEUP_RESET_FLAG); @(return Ct) } cl_object mp_condition_variable_broadcast(cl_object cv) { - if (cv->condition_variable.waiter != Cnil) { - cv->condition_variable.waiter = Cnil; - ecl_wakeup_waiters(ecl_process_env(), cv, - ECL_WAKEUP_ALL | ECL_WAKEUP_RESET_FLAG); - } + ecl_wakeup_waiters(ecl_process_env(), cv, + ECL_WAKEUP_ALL | ECL_WAKEUP_RESET_FLAG); @(return Ct) }