Class: ChildProcess::Unix::Lib::Attrs

Inherits:
Object
  • Object
show all
Defined in:
lib/childprocess/unix/lib.rb

Overview

FileActions

Instance Method Summary collapse

Constructor Details

#initializeAttrs

Returns a new instance of Attrs.



141
142
143
144
# File 'lib/childprocess/unix/lib.rb', line 141

def initialize
  @ptr = FFI::MemoryPointer.new(1, Platform::SIZEOF.fetch(:posix_spawnattr_t), false)
  Lib.check Lib.posix_spawnattr_init(@ptr)
end

Instance Method Details

#flagsObject



155
156
157
158
159
160
# File 'lib/childprocess/unix/lib.rb', line 155

def flags
  ptr = FFI::MemoryPointer.new(:short)
  Lib.check Lib.posix_spawnattr_getflags(@ptr, ptr)

  ptr.read_short
end

#flags=(flags) ⇒ Object



151
152
153
# File 'lib/childprocess/unix/lib.rb', line 151

def flags=(flags)
  Lib.check Lib.posix_spawnattr_setflags(@ptr, flags)
end

#freeObject



146
147
148
149
# File 'lib/childprocess/unix/lib.rb', line 146

def free
  Lib.check Lib.posix_spawnattr_destroy(@ptr)
  @ptr = nil
end

#pgroup=(pid) ⇒ Object



162
163
164
165
# File 'lib/childprocess/unix/lib.rb', line 162

def pgroup=(pid)
  self.flags |= Platform::POSIX_SPAWN_SETPGROUP
  Lib.check Lib.posix_spawnattr_setpgroup(@ptr, pid)
end

#to_ptrObject



167
168
169
# File 'lib/childprocess/unix/lib.rb', line 167

def to_ptr
  @ptr
end