Sha256: 952b76afcdfb75a63e1657d6b81c433de67b75bad98d46005b0d18ac04de7ef8

Contents?: true

Size: 953 Bytes

Versions: 3

Compression:

Stored size: 953 Bytes

Contents

class Ruby_process
  #Closes the process by executing exit.
  def cmd_exit(obj)
    exit
  end
  
  #Flushes various collected object-IDs to the subprocess, where they will be garbage-collected.
  def flush_finalized
    @flush_mutex.synchronize do
      debug "Ruby-process-debug: Checking finalized\n" if @debug
      ids = @proxy_objs_unsets.shift(500)
      debug "IDS: #{ids} #{@proxy_objs_unsets}\n" if @debug
      return nil if ids.empty?
      
      debug "Ruby-process-debug: Finalizing (#{ids}).\n" if @debug
      send(:cmd => :flush_finalized, :ids => ids)
      @finalize_count += ids.length
      return nil
    end
  end
  
  #Flushes references to the given object IDs.
  def cmd_flush_finalized(obj)
    debug "Command-flushing finalized: '#{obj[:ids]}'.\n" if @debug
    obj[:ids].each do |id|
      raise "Unknown ID: '#{id}' (#{id.class.name})." if !@objects.key?(id)
      @objects.delete(id)
    end
    
    return nil
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby_process-0.0.7 cmds/system.rb
ruby_process-0.0.5 cmds/system.rb
ruby_process-0.0.4 cmds/system.rb