Method: Open4.background

Defined in:
lib/vendor/open4/lib/open4.rb

.background(arg, *argv) ⇒ Object



338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
# File 'lib/vendor/open4/lib/open4.rb', line 338

def background arg, *argv 
#--{{{

  require 'thread'
  q = Queue.new
  opts = { 'pid' => q, :pid => q }
  case argv.last
    when Hash
      argv.last.update opts
    else
      argv.push opts
  end
  thread = Thread.new(arg, argv){|arg, argv| spawn arg, *argv}
  sc = class << thread; self; end
  sc.module_eval {
    define_method(:pid){ @pid ||= q.pop }
    define_method(:spawn_status){ @spawn_status ||= value }
    define_method(:exitstatus){ @exitstatus ||= spawn_status.exitstatus }
  }
  thread
#--}}}

end