Safe synchronization under any Ruby implementation. It provides methods like {#synchronize}, {#wait}, {#signal} and {#broadcast}. Provides a single layer which can improve its implementation over time without changes needed to the classes using it. Use {Synchronization::Object} not this abstract class. @note this object does not support usage together with [%xThread#wakeup`](http://ruby-doc.org/core-2.2.0/Thread.html#method-i-wakeup) and [%xThread#raise`](http://ruby-doc.org/core-2.2.0/Thread.html#method-i-raise). %xThread#sleep` and %xThread#wakeup` will work as expected but mixing %xSynchronization::Object#wait` and %xThread#wakeup` will not work on all platforms. @see Event implementation as an example of this class use @example simple class AnClass < Synchronization::Object def initialize super synchronize { @value = 'asd' } end def value synchronize { @value } end end
@!visibility private
# File lib/concurrent/synchronization/condition.rb, line 53 def new_condition Condition.private_new(self) end