Method: Channel#write
- Defined in:
- lib/channel.rb
#write(value, sender = nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/channel.rb', line 30 def write(value, sender = nil) @write_mutex.synchronize { @mutex.synchronize { @value.push(:value => value, :sender => sender) if @reading_thread.nil? @writing_thread = Thread.current @mutex.sleep @write_mutex.unlock @writing_thread = nil else @reading_thread.wakeup @reading_thread = nil end } } end |