Method: Main::Daemon#keep_ios

Defined in:
lib/main/daemon.rb

#keep_ios(*ios) ⇒ Object



502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
# File 'lib/main/daemon.rb', line 502

def keep_ios(*ios)
  filenos = []

  ios.flatten.compact.each do |io|
    begin
      fileno = io.respond_to?(:fileno) ? io.fileno : Integer(io)
      filenos.push(fileno)
    rescue Object
      next
    end
  end

  ObjectSpace.each_object(IO) do |io|
    begin
      fileno = io.fileno
      next if filenos.include?(fileno)
      io.close unless io.closed?
    rescue Object
      next
    end
  end
end