trying using cond_signal instead of cond_broadcast