spoon 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. data/lib/spoon/unix.rb +13 -9
  2. data/spoon.gemspec +1 -1
  3. metadata +1 -1
data/lib/spoon/unix.rb CHANGED
@@ -20,14 +20,16 @@ module Spoon
20
20
  SIZE = FFI::Platform.mac? ? FFI.type_size(:pointer) : 128
21
21
 
22
22
  def initialize
23
- @pointer = FFI::AutoPointer.new(LibC.malloc(SIZE), self.class)
23
+ @pointer = FFI::AutoPointer.new(LibC.malloc(SIZE), Releaser)
24
24
  error = LibC.posix_spawn_file_actions_init(@pointer)
25
25
  raise SystemCallError.new("posix_file_actions_init", error) unless error == 0
26
26
  end
27
27
 
28
- def self.release(ptr)
29
- LibC.posix_spawn_file_actions_destroy(ptr)
30
- LibC.free(ptr)
28
+ class Releaser
29
+ def self.call(ptr)
30
+ LibC.posix_spawn_file_actions_destroy(ptr)
31
+ LibC.free(ptr)
32
+ end
31
33
  end
32
34
 
33
35
  def open(fd, path, oflag, mode)
@@ -51,17 +53,19 @@ module Spoon
51
53
 
52
54
  class SpawnAttributes
53
55
  attr_reader :pointer
54
- SIZE = FFI::Platform.mac? ? FFI.type_size(:pointer) : 128
56
+ SIZE = FFI::Platform.mac? ? FFI.type_size(:pointer) : 512
55
57
 
56
58
  def initialize
57
- @pointer = FFI::AutoPointer.new(LibC.malloc(SIZE), self.class)
59
+ @pointer = FFI::AutoPointer.new(LibC.malloc(SIZE), Releaser)
58
60
  error = LibC.posix_spawnattr_init(@pointer)
59
61
  raise SystemCallError.new("posix_spawnattr_init", error) unless error == 0
60
62
  end
61
63
 
62
- def self.release(ptr)
63
- LibC.posix_spawnattr_destroy(ptr)
64
- LibC.free(ptr)
64
+ class Releaser
65
+ def self.call(ptr)
66
+ LibC.posix_spawnattr_destroy(ptr)
67
+ LibC.free(ptr)
68
+ end
65
69
  end
66
70
 
67
71
  def pgroup=(group)
data/spoon.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "spoon"
3
- s.version = "0.0.3"
3
+ s.version = "0.0.4"
4
4
  s.authors = ["Charles Oliver Nutter"]
5
5
  s.date = "2013-03-29"
6
6
  s.description = s.summary = "Spoon is an FFI binding of the posix_spawn function (and Windows equivalent), providing fork+exec functionality in a single shot."
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
4
  prerelease:
5
+ version: 0.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Charles Oliver Nutter