def read_worker_status(options)
      on_activity = options[:on_activity]
      until @master_socket.nil?
        IO.select([@master_socket], nil, nil, 0) or return
        case line = @master_socket.readline
        when /^\+(\d+),(.*)$/
          worker_pids[$1] = $2
          on_activity.worker_started($1) if on_activity
        when /^-(\d+)$/
          worker_pids.delete($1)
          on_activity.worker_finished($1) if on_activity
        when /^RUNNING/
          on_activity.listener_running(self) if on_activity
        when ''
          break
        else
          log "Malformed data from listener: #{line.inspect}"
        end
      end
    rescue EOFError, Errno::ECONNRESET
      @master_socket.close
      @master_socket = nil
    end
def read_worker_status(options)
      on_activity = options[:on_activity]
      until @master_socket.nil?
        IO.select([@master_socket], nil, nil, 0) or return
        case line = @master_socket.readline
        when /^\+(\d+),(.*)$/
          worker_pids[$1] = $2
          on_activity.worker_started($1) if on_activity
        when /^-(\d+)$/
          worker_pids.delete($1)
          on_activity.worker_finished($1) if on_activity
        when /^RUNNING/
          on_activity.listener_running(self) if on_activity
        when ''
          break
        else
          log "Malformed data from listener: #{line.inspect}"
        end
      end
    rescue EOFError, Errno::ECONNRESET
      @master_socket.close
      @master_socket = nil
    end
Public: Check for updates on running worker information.