# File lib/starfish.rb, line 48
  def server
    unless @@server
      $stderr.puts "You must specify a server"
      exit
    end

    map_reduce = MapReduce.new
    object = @@server.call(map_reduce)
    
    if map_reduce.valid?
      object = map_reduce
    end
    
    sanitize object
    
    ts = Rinda::TupleSpace.new
    begin
      ts.write([:name, uniq.intern, object, @uniq])
      ring_server = Rinda::RingServer.new(ts)
    rescue Errno::EADDRINUSE
      ts = RingFinger.primary
      ts.write([:name, uniq.intern, object, @uniq])
    end

    File.open(@@options[:pid] || "#{Dir.tmpdir}/starfish-#{uniq}.pid","w"){|f|f<<Process.pid}

    $stderr.puts "server started for #{object.inspect}"
    
    DRb.thread.join
  end