File: //usr/share/ri/3.0.0/system/ConditionVariable/cdesc-ConditionVariable.ri
U:RDoc::NormalClass[iI"ConditionVariable:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"OConditionVariable objects augment class Mutex. Using condition variables, ;TI"Qit is possible to suspend while in the middle of a critical section until a ;TI" resource becomes available.;To:RDoc::Markup::BlankLine o; ;[I"
Example:;T@o:RDoc::Markup::Verbatim;[I"mutex = Mutex.new
;TI"&resource = ConditionVariable.new
;TI"
;TI"a = Thread.new {
;TI" mutex.synchronize {
;TI". # Thread 'a' now needs the resource
;TI" resource.wait(mutex)
;TI"* # 'a' can now have the resource
;TI"
}
;TI"}
;TI"
;TI"b = Thread.new {
;TI" mutex.synchronize {
;TI"7 # Thread 'b' has finished using the resource
;TI" resource.signal
;TI"
}
;TI"};T:@format0:
@fileI"thread_sync.c;T:0@omit_headings_from_table_of_contents_below0;
0;0[ [ [ [[I"
class;T[[:public[[I"new;TI"thread_sync.c;T[:protected[ [:private[ [I"
instance;T[[;[[I"broadcast;T@5[I"signal;T@5[I" wait;T@5[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;
0;0[@)@)cRDoc::TopLevel