class DRb::DRbUNIXSocket

def self.temp_server

def self.temp_server
  tmpdir = Dir::tmpdir
  n = 0
  while true
    begin
      tmpname = sprintf('%s/druby%d.%d', tmpdir, $$, n)
      lock = tmpname + '.lock'
      unless File.exist?(tmpname) or File.exist?(lock)
        Dir.mkdir(lock)
        break
      end
    rescue
      raise "cannot generate tempfile '%s'" % tmpname if n >= Max_try
      #sleep(1)
    end
    n += 1
  end
  soc = UNIXServer.new(tmpname)
  Dir.rmdir(lock)
  soc
end