semop
Perform semaphore operation.
Declaration
Source position: ipc.pp line 873
function semop(semid: cint; sops: PSEMbuf; nsops: cuint) : cint;
Description
semop performs a set of operations on a message queue. sops points to an array of type TSEMbuf. The array should contain nsops elements.
The fields of the TSEMbuf structure
TSEMbuf = record
sem_num : word;
sem_op : integer;
sem_flg : integer;
should be filled as follows:
- sem_num
- The number of the semaphore in the set on which the operation must be performed.
- sem_op
- The operation to be performed. The operation depends on the sign of sem_op: A positive number is simply added to the current value of the semaphore. If 0 (zero) is specified, then the process is suspended until the specified semaphore reaches zero. If a negative number is specified, it is subtracted from the current value of the semaphore. If the value would become negative then the process is suspended until the value becomes big enough, unless IPC_NOWAIT is specified in the sem_flg.
- sem_flg
- Optional flags: if IPC_NOWAIT is specified, then the calling process will never be suspended.
The function returns True if the operations were successful, False otherwise.
Errors
In case of error, False is returned, and IPCerror is set.
See also
Name | Description |
---|---|
semctl | Perform various control operations on a semaphore set |
semget | Return the ID of a semaphore set, possibly creating the set |