Sha256: af4efb74518b3b30c36291f528bcdde2b4eb8bcef770372831ca1d007d3c5231

Contents?: true

Size: 775 Bytes

Versions: 5

Compression:

Stored size: 775 Bytes

Contents

module ChildProcess
  module Windows
    class Process < AbstractProcess

      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 exited?
        return true if @exit_code

        assert_started
        code   = @handle.exit_code
        exited = code != PROCESS_STILL_ACTIVE

        if exited
          @exit_code = code
        end

        exited
      end

      private

      def launch_process
        @pid    = Lib.create_proc(@args.join(' '), :inherit => false)
        @handle = Handle.open(@pid)

        self
      end

    end # Process
  end # Windows
end # ChildProcess

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
childprocess-0.0.5 lib/childprocess/windows/process.rb
childprocess-0.0.4 lib/childprocess/windows/process.rb
childprocess-0.0.3 lib/childprocess/windows/process.rb
childprocess-0.0.2 lib/childprocess/windows/process.rb
childprocess-0.0.1 lib/childprocess/windows/process.rb