Sha256: c0250b678afcd1ab759ab3ce8f8a57a45a53668f7dfadcf5d90b8462fb4c01fa
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
module ChildProcess module Windows class Process < AbstractProcess attr_reader :pid def io @io ||= Windows::IO.new end def stop(timeout = 3) assert_started # just kill right away on windows. log "sending KILL" @handle.send(WIN_SIGKILL) poll_for_exit(timeout) ensure @handle.close end def wait if exited? exit_code else @handle.wait @exit_code = @handle.exit_code @handle.close @exit_code end end def exited? return true if @exit_code assert_started code = @handle.exit_code exited = code != PROCESS_STILL_ACTIVE log(:exited? => exited, :code => code) if exited @exit_code = code @handle.close end exited end private def launch_process builder = ProcessBuilder.new(@args) builder.detach = detach? builder.duplex = duplex? builder.environment = @environment unless @environment.empty? builder.cwd = @cwd if @io builder.stdout = @io.stdout builder.stderr = @io.stderr end @pid = builder.start @handle = Handle.open @pid if duplex? raise Error, "no stdin stream" unless builder.stdin io._stdin = builder.stdin end self end end # Process end # Windows end # ChildProcess
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
childprocess-0.4.0 | lib/childprocess/windows/process.rb |