42 #include <sys/types.h>
50 int id = semget(key, count, IPC_CREAT | S_IRWXU);
53 errno, strerror(errno));
59 int ret = semctl(
id, 0, IPC_RMID);
62 errno, strerror(errno));
69 int id = semget(key, count, S_IRWXU);
82 struct timespec timeout_struct = {timeout, 0};
84 int ret = semtimedop(
id, &sem_ops, num_ops, &timeout_struct);
86 if (errno == EAGAIN) {
88 errno, strerror(errno));
89 }
else if (errno == EIDRM) {
91 "Failed waiting on semaphore, semaphore removed; %d "
93 errno, strerror(errno));
94 }
else if (errno == EINVAL) {
96 "Failed waiting on semaphore, semaphore inexistent; %d "
98 errno, strerror(errno));
101 errno, strerror(errno));
113 int ret = semtimedop(
id, &sem_ops, num_ops, &timeout_struct);
115 if (errno == EAGAIN) {
117 "Timeout on setting semaphore count; %d message: %s", errno,
121 "Failed setting semaphore count; %d message: %s", errno,
130 int count = semctl(
id, index, GETNCNT);
133 errno, strerror(errno));
int rl_log(rl_log_level_t log_level, char const *const format,...)
#define SUCCESS
Function return value for successful completion.
int sem_open(key_t key, int count)
int sem_create(key_t key, int count)
int sem_get(int id, int index)
int sem_set(int id, int index, int value)
int sem_wait(int id, int index, int timeout)
#define SEM_TIMEOUT_WRITE
Time out time in seconds, waiting on semaphore write.
#define SEM_OPT_NO_FLAG
Time out time in seconds, waiting on semaphore write.