posix-spawn 0.3.6 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/README.md +1 -1
 - data/Rakefile +2 -2
 - data/ext/extconf.rb +1 -1
 - data/ext/posix-spawn.c +3 -1
 - data/lib/posix/spawn.rb +9 -4
 - data/lib/posix/spawn/child.rb +1 -1
 - data/lib/posix/spawn/version.rb +1 -1
 - data/posix-spawn.gemspec +0 -1
 - metadata +36 -58
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a758d442978f77e9c025e5221d612e26b870bb0c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 78cc34f97240c5f37ce70285f4967aa1fe15aa32
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9b30ac20c707dc810eacd8f43158f3d641952e73ac367120acf204996d235085dbbc75dec527bfe60156ec9a5486418e1d0031c732c90375f4655f39c361de1c
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: adcaada88b55b3584cf6d671865730c12ab04069ad40833c462ae0d1db95c79c2d61113b56de126cfa3e49748ac032fb5c79193ab354ac500505d1381c655d9e
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -4,7 +4,7 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
            to copy page tables. In many common uses of fork(), where it is followed by one
         
     | 
| 
       5 
5 
     | 
    
         
             
            of the exec family of functions to spawn child processes (`Kernel#system`,
         
     | 
| 
       6 
6 
     | 
    
         
             
            `IO::popen`, `Process::spawn`, etc.), it's possible to remove this overhead by using
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
            special process spawning interfaces (`posix_spawn()`, `vfork()`, etc.)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            The posix-spawn library aims to implement a subset of the Ruby 1.9 `Process::spawn`
         
     | 
| 
       10 
10 
     | 
    
         
             
            interface in a way that takes advantage of fast process spawning interfaces when
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -6,8 +6,8 @@ task :default => :test 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            GEMSPEC = eval(File.read('posix-spawn.gemspec'))
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            require ' 
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            require 'rubygems/package_task'
         
     | 
| 
      
 10 
     | 
    
         
            +
            Gem::PackageTask.new(GEMSPEC) do |pkg|
         
     | 
| 
       11 
11 
     | 
    
         
             
            end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            # ==========================================================
         
     | 
    
        data/ext/extconf.rb
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ require 'mkmf' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            # warnings save lives
         
     | 
| 
       4 
4 
     | 
    
         
             
            $CFLAGS << " -Wall "
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            if RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
         
     | 
| 
      
 6 
     | 
    
         
            +
            if RUBY_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/
         
     | 
| 
       7 
7 
     | 
    
         
             
              File.open('Makefile','w'){|f| f.puts "default: \ninstall: " }
         
     | 
| 
       8 
8 
     | 
    
         
             
            else
         
     | 
| 
       9 
9 
     | 
    
         
             
              create_makefile('posix_spawn_ext')
         
     | 
    
        data/ext/posix-spawn.c
    CHANGED
    
    | 
         @@ -438,8 +438,10 @@ rb_posixspawn_pspawn(VALUE self, VALUE env, VALUE argv, VALUE options) 
     | 
|
| 
       438 
438 
     | 
    
         
             
            	}
         
     | 
| 
       439 
439 
     | 
    
         | 
| 
       440 
440 
     | 
    
         
             
            	if (ret != 0) {
         
     | 
| 
      
 441 
     | 
    
         
            +
            		char error_context[PATH_MAX+32];
         
     | 
| 
      
 442 
     | 
    
         
            +
            		snprintf(error_context, sizeof(error_context), "when spawning '%s'", file);
         
     | 
| 
       441 
443 
     | 
    
         
             
            		errno = ret;
         
     | 
| 
       442 
     | 
    
         
            -
            		rb_sys_fail( 
     | 
| 
      
 444 
     | 
    
         
            +
            		rb_sys_fail(error_context);
         
     | 
| 
       443 
445 
     | 
    
         
             
            	}
         
     | 
| 
       444 
446 
     | 
    
         | 
| 
       445 
447 
     | 
    
         
             
            	return INT2FIX(pid);
         
     | 
    
        data/lib/posix/spawn.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            unless RUBY_PLATFORM =~ /(mswin|mingw|bccwin)/
         
     | 
| 
      
 1 
     | 
    
         
            +
            unless RUBY_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/
         
     | 
| 
       2 
2 
     | 
    
         
             
              require 'posix_spawn_ext'
         
     | 
| 
       3 
3 
     | 
    
         
             
            end
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
         @@ -267,7 +267,12 @@ module POSIX 
     | 
|
| 
       267 
267 
     | 
    
         
             
                # Returns the String output of the command.
         
     | 
| 
       268 
268 
     | 
    
         
             
                def `(cmd)
         
     | 
| 
       269 
269 
     | 
    
         
             
                  r, w = IO.pipe
         
     | 
| 
       270 
     | 
    
         
            -
                   
     | 
| 
      
 270 
     | 
    
         
            +
                  if RUBY_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/
         
     | 
| 
      
 271 
     | 
    
         
            +
                    sh = ENV['COMSPEC'] || 'cmd.exe'
         
     | 
| 
      
 272 
     | 
    
         
            +
                    pid = spawn([sh, sh], '/c', cmd, :out => w, r => :close)
         
     | 
| 
      
 273 
     | 
    
         
            +
                  else
         
     | 
| 
      
 274 
     | 
    
         
            +
                    pid = spawn(['/bin/sh', '/bin/sh'], '-c', cmd, :out => w, r => :close)
         
     | 
| 
      
 275 
     | 
    
         
            +
                  end
         
     | 
| 
       271 
276 
     | 
    
         | 
| 
       272 
277 
     | 
    
         
             
                  if pid > 0
         
     | 
| 
       273 
278 
     | 
    
         
             
                    w.close
         
     | 
| 
         @@ -285,7 +290,7 @@ module POSIX 
     | 
|
| 
       285 
290 
     | 
    
         
             
                # the spawning process. Supports the standard spawn interface as described
         
     | 
| 
       286 
291 
     | 
    
         
             
                # in the POSIX::Spawn module documentation.
         
     | 
| 
       287 
292 
     | 
    
         
             
                #
         
     | 
| 
       288 
     | 
    
         
            -
                # Returns a [pid, stdin,  
     | 
| 
      
 293 
     | 
    
         
            +
                # Returns a [pid, stdin, stdout, stderr] tuple, where pid is the new
         
     | 
| 
       289 
294 
     | 
    
         
             
                # process's pid, stdin is a writeable IO object, and stdout / stderr are
         
     | 
| 
       290 
295 
     | 
    
         
             
                # readable IO objects. The caller should take care to close all IO objects
         
     | 
| 
       291 
296 
     | 
    
         
             
                # when finished and the child process's status must be collected by a call
         
     | 
| 
         @@ -309,7 +314,7 @@ module POSIX 
     | 
|
| 
       309 
314 
     | 
    
         
             
                  [pid, iwr, ord, erd]
         
     | 
| 
       310 
315 
     | 
    
         
             
                ensure
         
     | 
| 
       311 
316 
     | 
    
         
             
                  # we're in the parent, close child-side fds
         
     | 
| 
       312 
     | 
    
         
            -
                  [ird, owr, ewr].each { |fd| fd.close }
         
     | 
| 
      
 317 
     | 
    
         
            +
                  [ird, owr, ewr].each { |fd| fd.close if fd }
         
     | 
| 
       313 
318 
     | 
    
         
             
                end
         
     | 
| 
       314 
319 
     | 
    
         | 
| 
       315 
320 
     | 
    
         
             
                ##
         
     | 
    
        data/lib/posix/spawn/child.rb
    CHANGED
    
    | 
         @@ -146,7 +146,7 @@ module POSIX 
     | 
|
| 
       146 
146 
     | 
    
         
             
                    offset = 0
         
     | 
| 
       147 
147 
     | 
    
         | 
| 
       148 
148 
     | 
    
         
             
                    # force all string and IO encodings to BINARY under 1.9 for now
         
     | 
| 
       149 
     | 
    
         
            -
                    if out.respond_to?(:force_encoding)
         
     | 
| 
      
 149 
     | 
    
         
            +
                    if out.respond_to?(:force_encoding) and stdin.respond_to?(:set_encoding)
         
     | 
| 
       150 
150 
     | 
    
         
             
                      [stdin, stdout, stderr].each do |fd|
         
     | 
| 
       151 
151 
     | 
    
         
             
                        fd.set_encoding('BINARY', 'BINARY')
         
     | 
| 
       152 
152 
     | 
    
         
             
                      end
         
     | 
    
        data/lib/posix/spawn/version.rb
    CHANGED
    
    
    
        data/posix-spawn.gemspec
    CHANGED
    
    | 
         @@ -8,7 +8,6 @@ Gem::Specification.new do |s| 
     | 
|
| 
       8 
8 
     | 
    
         
             
              s.description = 'posix-spawn uses posix_spawnp(2) for faster process spawning'
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.homepage = 'http://github.com/rtomayko/posix-spawn'
         
     | 
| 
       11 
     | 
    
         
            -
              s.has_rdoc = false
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
12 
     | 
    
         
             
              s.authors = ['Ryan Tomayko', 'Aman Gupta']
         
     | 
| 
       14 
13 
     | 
    
         
             
              s.email = ['r@tomayko.com', 'aman@tmm1.net']
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,52 +1,42 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: posix-spawn
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
              prerelease: 
         
     | 
| 
       6 
     | 
    
         
            -
              segments: 
         
     | 
| 
       7 
     | 
    
         
            -
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              - 3
         
     | 
| 
       9 
     | 
    
         
            -
              - 6
         
     | 
| 
       10 
     | 
    
         
            -
              version: 0.3.6
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.8
         
     | 
| 
       11 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
     | 
    
         
            -
            authors: 
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
       13 
7 
     | 
    
         
             
            - Ryan Tomayko
         
     | 
| 
       14 
8 
     | 
    
         
             
            - Aman Gupta
         
     | 
| 
       15 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       16 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            dependencies: 
         
     | 
| 
       22 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-12-06 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
       23 
15 
     | 
    
         
             
              name: rake-compiler
         
     | 
| 
       24 
     | 
    
         
            -
               
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                - - "="
         
     | 
| 
       29 
     | 
    
         
            -
                  - !ruby/object:Gem::Version 
         
     | 
| 
       30 
     | 
    
         
            -
                    hash: 15
         
     | 
| 
       31 
     | 
    
         
            -
                    segments: 
         
     | 
| 
       32 
     | 
    
         
            -
                    - 0
         
     | 
| 
       33 
     | 
    
         
            -
                    - 7
         
     | 
| 
       34 
     | 
    
         
            -
                    - 6
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - '='
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
       35 
20 
     | 
    
         
             
                    version: 0.7.6
         
     | 
| 
       36 
21 
     | 
    
         
             
              type: :development
         
     | 
| 
       37 
     | 
    
         
            -
               
     | 
| 
      
 22 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 23 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 24 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - - '='
         
     | 
| 
      
 26 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 27 
     | 
    
         
            +
                    version: 0.7.6
         
     | 
| 
       38 
28 
     | 
    
         
             
            description: posix-spawn uses posix_spawnp(2) for faster process spawning
         
     | 
| 
       39 
     | 
    
         
            -
            email: 
     | 
| 
      
 29 
     | 
    
         
            +
            email:
         
     | 
| 
       40 
30 
     | 
    
         
             
            - r@tomayko.com
         
     | 
| 
       41 
31 
     | 
    
         
             
            - aman@tmm1.net
         
     | 
| 
       42 
     | 
    
         
            -
            executables: 
     | 
| 
      
 32 
     | 
    
         
            +
            executables:
         
     | 
| 
       43 
33 
     | 
    
         
             
            - posix-spawn-benchmark
         
     | 
| 
       44 
     | 
    
         
            -
            extensions: 
     | 
| 
      
 34 
     | 
    
         
            +
            extensions:
         
     | 
| 
       45 
35 
     | 
    
         
             
            - ext/extconf.rb
         
     | 
| 
       46 
     | 
    
         
            -
            extra_rdoc_files: 
     | 
| 
      
 36 
     | 
    
         
            +
            extra_rdoc_files:
         
     | 
| 
       47 
37 
     | 
    
         
             
            - COPYING
         
     | 
| 
       48 
38 
     | 
    
         
             
            - HACKING
         
     | 
| 
       49 
     | 
    
         
            -
            files: 
     | 
| 
      
 39 
     | 
    
         
            +
            files:
         
     | 
| 
       50 
40 
     | 
    
         
             
            - .gitignore
         
     | 
| 
       51 
41 
     | 
    
         
             
            - COPYING
         
     | 
| 
       52 
42 
     | 
    
         
             
            - Gemfile
         
     | 
| 
         @@ -67,39 +57,27 @@ files: 
     | 
|
| 
       67 
57 
     | 
    
         
             
            - test/test_popen.rb
         
     | 
| 
       68 
58 
     | 
    
         
             
            - test/test_spawn.rb
         
     | 
| 
       69 
59 
     | 
    
         
             
            - test/test_system.rb
         
     | 
| 
       70 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
       71 
60 
     | 
    
         
             
            homepage: http://github.com/rtomayko/posix-spawn
         
     | 
| 
       72 
61 
     | 
    
         
             
            licenses: []
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 62 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
       74 
63 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       75 
64 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
            require_paths: 
         
     | 
| 
      
 65 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       78 
66 
     | 
    
         
             
            - lib
         
     | 
| 
       79 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
       80 
     | 
    
         
            -
               
     | 
| 
       81 
     | 
    
         
            -
               
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
              none: false
         
     | 
| 
       90 
     | 
    
         
            -
              requirements: 
         
     | 
| 
       91 
     | 
    
         
            -
              - - ">="
         
     | 
| 
       92 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
         
     | 
| 
       93 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       94 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       95 
     | 
    
         
            -
                  - 0
         
     | 
| 
       96 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
      
 67 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 68 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 69 
     | 
    
         
            +
              - - '>='
         
     | 
| 
      
 70 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 71 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 72 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 73 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 74 
     | 
    
         
            +
              - - '>='
         
     | 
| 
      
 75 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 76 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       97 
77 
     | 
    
         
             
            requirements: []
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
78 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       100 
     | 
    
         
            -
            rubygems_version:  
     | 
| 
      
 79 
     | 
    
         
            +
            rubygems_version: 2.0.3
         
     | 
| 
       101 
80 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       102 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 81 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
       103 
82 
     | 
    
         
             
            summary: posix_spawnp(2) for ruby
         
     | 
| 
       104 
83 
     | 
    
         
             
            test_files: []
         
     | 
| 
       105 
     | 
    
         
            -
             
     |