Namespace
- CLASS TupleSpace::Template
Methods
Class Public methods
new()
Link
Source: show
# File sample/drb/old_tuplespace.rb, line 33 def initialize @que = {} @waiting = {} @que.taint # enable tainted comunication @waiting.taint self.taint end
Instance Public methods
in(template, non_block=false)
Link
Source: show
# File sample/drb/old_tuplespace.rb, line 110 def in(template, non_block=false) begin loop do Thread.critical = true tuple = get_que(template) unless tuple if non_block raise ThreadError, "queue empty" end put_waiting(template, Thread.current) Thread.stop else return tuple end end ensure Thread.critical = false end end
mv(dest, template, non_block=false)
Link
Also aliased as: move
Source: show
# File sample/drb/old_tuplespace.rb, line 139 def mv(dest, template, non_block=false) tuple = self.in(template, non_block) begin dest.out(tuple) rescue self.out(tuple) end end
out(*tuples)
Link
Source: show
# File sample/drb/old_tuplespace.rb, line 99 def out(*tuples) tuples.each do |tuple| Thread.critical = true put_que(tuple) wakeup_waiting(tuple) Thread.critical = false end end