Namespace
Methods
G
I
M
N
O
P
R
T
W
Class Public methods
new()
# 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
get(template, non_block=false)
Alias for: in
in(template, non_block=false)
Also aliased as: get, take
# 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
move(dest, template, non_block=false)
Alias for: mv
mv(dest, template, non_block=false)
Also aliased as: move
# 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)
Also aliased as: put, write
# 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
put(*tuples)
Alias for: out
rd(template, non_block=false)
Also aliased as: read
# File sample/drb/old_tuplespace.rb, line 132
def rd(template, non_block=false)
  tuple = self.in(template, non_block)
  out(tuple)
  tuple
end
read(template, non_block=false)
Alias for: rd
take(template, non_block=false)
Alias for: in
write(*tuples)
Alias for: out