JezK
Edit File: cdesc-LockableObject.ri
U:RDoc::NormalClass[iI"LockableObject:EFI"0Concurrent::Synchronization::LockableObject;FI"!LockableObjectImplementation;To:RDoc::Markup::Document:@parts[o;;[ : @fileI"0lib/concurrent/synchronization/condition.rb;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Verbatim;[I"9Safe synchronization under any Ruby implementation. ;TI"SIt provides methods like {#synchronize}, {#wait}, {#signal} and {#broadcast}. ;TI"fProvides a single layer which can improve its implementation over time without changes needed to ;TI"Rthe classes using it. Use {Synchronization::Object} not this abstract class. ;TI" ;TI"<@note this object does not support usage together with ;TI"U [`Thread#wakeup`](http://ruby-doc.org/core-2.2.0/Thread.html#method-i-wakeup) ;TI"X and [`Thread#raise`](http://ruby-doc.org/core-2.2.0/Thread.html#method-i-raise). ;TI"n `Thread#sleep` and `Thread#wakeup` will work as expected but mixing `Synchronization::Object#wait` and ;TI"7 `Thread#wakeup` will not work on all platforms. ;TI" ;TI"A@see {Event} implementation as an example of this class use ;TI" ;TI"@example simple ;TI"/ class AnClass < Synchronization::Object ;TI" def initialize ;TI" super ;TI"* synchronize { @value = 'asd' } ;TI" end ;TI" ;TI" def value ;TI"" synchronize { @value } ;TI" end ;TI" end ;T:@format0o:RDoc::Markup::Paragraph;[I"@!visibility private;T; I"6lib/concurrent/synchronization/lockable_object.rb;T; 0; 0; 0[ [ [ [[I" class;T[[:public[ [:protected[ [:private[ [I" instance;T[[;[[I"new_condition;FI"0lib/concurrent/synchronization/condition.rb;T[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0; 0[@@.I" Concurrent::Synchronization;FcRDoc::NormalModule