Class: SysVIPC::Semaphore

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

Instance Method Summary collapse

Instance Method Details

#getallObject

Return an Array containing the value of each semaphore in the set. See semctl(2).



209
210
211
212
213
# File 'lib/SysVIPC.rb', line 209

def getall
  res, array = semctl(@semid, 0, GETALL)
  check_result(res)
  array
end

#getncntObject Also known as: ncnt

Get the number of processes waiting for a semaphore to become non-zero. See semctl(2).



239
240
241
# File 'lib/SysVIPC.rb', line 239

def getncnt
  semctl(@semid, 0, GETNCNT)
end

#getpidObject Also known as: pid

Get the process ID of the last semaphore operation. See semctl(2).



231
232
233
# File 'lib/SysVIPC.rb', line 231

def getpid
  semctl(@semid, 0, GETPID)
end

#getval(semnum) ⇒ Object Also known as: val

Get the value of semaphore semnum. See semctl(2).



223
224
225
# File 'lib/SysVIPC.rb', line 223

def getval(semnum)
  semctl(@semid, semnum, GETVAL)
end

#getzcntObject Also known as: zcnt

Get the number of processes waiting for a semaphore to become zero. See semctl(2).



247
248
249
# File 'lib/SysVIPC.rb', line 247

def getzcnt
  semctl(@semid, 0, GETZCNT)
end

#ipc_rmidObject Also known as: rm

Remove. See semctl(2).



274
275
276
# File 'lib/SysVIPC.rb', line 274

def ipc_rmid
  check_result(semctl(@semid, 0, IPC_RMID))
end

#ipc_set(semid_ds) ⇒ Object Also known as: semid_ds=

Set the Semid_ds object. See semctl(2).



263
264
265
266
267
268
269
# File 'lib/SysVIPC.rb', line 263

def ipc_set(semid_ds)
  unless Semid_ds === semid_ds
	raise ArgumentError,
	  "argument to ipc_set must be a Semid_ds"
  end
  check_result(semctl(@semid, 0, IPC_SET, semid_ds))
end

#ipc_statObject Also known as: semid_ds

Return the Semid_ds object. See semctl(2).



254
255
256
257
258
# File 'lib/SysVIPC.rb', line 254

def ipc_stat
  res, semid_ds = semctl(@semid, 0, IPC_STAT)
  check_result(res)
  semid_ds
end

#op(array) ⇒ Object

Perform a set of semaphore operations. The argument array is an Array of Sembuf objects. See semop(2).



282
283
284
# File 'lib/SysVIPC.rb', line 282

def op(array)
  check_result(semop(@semid, array, array.length))
end

#setall(values) ⇒ Object

Set each value in the semaphore set to the corresponding value in the Array values. See semctl(2).



198
199
200
201
202
203
204
# File 'lib/SysVIPC.rb', line 198

def setall(values)
  if values.length > @nsems
	raise ArgumentError,
	  "too many values(#{values.length} for semaphore set (#{@nsems})"
  end
  check_result(semctl(@semid, 0, SETALL, values))
end

#setval(semnum, val) ⇒ Object

Set the value of semaphore semnum to val. See semctl(2).



217
218
219
# File 'lib/SysVIPC.rb', line 217

def setval(semnum, val)
  check_result(semctl(@semid, semnum, SETVAL, val))
end