JezK
Edit File: cdesc-CyclicBarrier.ri
U:RDoc::NormalClass[iI"CyclicBarrier:EFI"Concurrent::CyclicBarrier;FI"$Synchronization::LockableObject;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"MA synchronization aid that allows a set of threads to all wait for each ;TI",other to reach a common barrier point. ;TI" @example;To:RDoc::Markup::Verbatim;[I"0barrier = Concurrent::CyclicBarrier.new(3) ;TI">jobs = Array.new(3) { |i| -> { sleep i; p done: i } } ;TI"process = -> (i) do ;TI"+ # waiting to start at the same time ;TI" barrier.wait ;TI" # execute job ;TI" jobs[i].call ;TI"# # wait for others to finish ;TI" barrier.wait ;TI" end ;TI""threads = 2.times.map do |i| ;TI" Thread.new(i, &process) ;TI" end ;TI" ;TI"# use main as well ;TI"process.call 2 ;TI" ;TI"8# here we can be sure that all jobs are processed ;T:@format0: @fileI",lib/concurrent/atomic/cyclic_barrier.rb;T:0@omit_headings_from_table_of_contents_below0;0; 0[ [U:RDoc::Constant[i I"Generation;FI"*Concurrent::CyclicBarrier::Generation;F00o;;[o; ;[I"@!visibility private;T;@'; 0@'@cRDoc::NormalClass0[ [[I" class;T[[:public[[I"new;TI",lib/concurrent/atomic/cyclic_barrier.rb;T[:protected[ [:private[ [I" instance;T[[;[ [I"broken?;F@=[I"number_waiting;F@=[I"parties;F@=[I" reset;F@=[I" wait;F@=[;[[I"ns_generation_done;F@=[I"ns_initialize;F@=[I"ns_next_generation;F@=[;[ [ [U:RDoc::Context::Section[i 0o;;[ ;0; 0[@'I"Concurrent;FcRDoc::NormalModule