Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

57 lines (47 sloc) 1.143 kb
require 'java'
require 'jruby'
class Java::SunNioCh::FileChannelImpl
field_reader :fd
end
class Java::JavaIo::FileDescriptor
if ChildProcess.os == :windows
field_reader :handle
end
field_reader :fd
end
module ChildProcess
module JRuby
def self.posix_fileno_for(obj)
channel = ::JRuby.reference(obj).channel
begin
channel.getFDVal
rescue NoMethodError
fileno = channel.fd
if fileno.kind_of?(Java::JavaIo::FileDescriptor)
fileno = fileno.fd
end
fileno == -1 ? obj.fileno : fileno
end
rescue
# fall back
obj.fileno
end
def self.windows_handle_for(obj)
channel = ::JRuby.reference(obj).channel
fileno = obj.fileno
begin
fileno = channel.getFDVal
rescue NoMethodError
fileno = channel.fd if channel.respond_to?(:fd)
end
if fileno.kind_of? Java::JavaIo::FileDescriptor
fileno.handle
else
Windows::Lib.handle_for fileno
end
end
end
end
require "childprocess/jruby/pump"
require "childprocess/jruby/io"
require "childprocess/jruby/process"
Jump to Line
Something went wrong with that request. Please try again.