Method: Generator#yield

Defined in:
lib/thread_generator.rb

#yield(value) ⇒ Object

Yields an element to the generator.



91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/thread_generator.rb', line 91

def yield(value)
  if Thread.current != @loop_thread
    raise "should be called in Generator.new{|g| ... }"
  end
  Thread.critical = true
  begin
    @queue << value
    @main_thread.wakeup
    Thread.stop
  ensure
    Thread.critical = false
  end
  self
end