/*
* Document-method: broadcast
* call-seq: broadcast
*
* Wakes up all threads waiting for this condition.
*
*/
static VALUE
rb_condvar_broadcast(VALUE self)
{
ConditionVariable *condvar;
Data_Get_Struct(self, ConditionVariable, condvar);
rb_thread_critical = 1;
rb_ensure(wake_all, (VALUE)&condvar->waiting, set_critical, 0);
rb_thread_schedule();
return self;
}