/* Function MutexCreate: create a mutex/semaphore */
int MutexCreate(key_t ipc_key)
{
- const union semun semunion={1}; /* semaphore union structure */
+ const union semun semunion={1}; /* semaphore union structure */
int sem_id, ret;
- sem_id = semget(ipc_key, 1, IPC_CREAT|0666); /* get semaphore ID */
- if (sem_id == -1) { /* if error return code */
+ sem_id = semget(ipc_key, 1, IPC_CREAT|0666); /* get semaphore ID */
+ if (sem_id == -1) { /* if error return code */
return sem_id;
}
- ret = semctl(sem_id, 0, SETVAL, semunion); /* init semaphore */
+ ret = semctl(sem_id, 0, SETVAL, semunion); /* init semaphore */
if (ret == -1) {
return ret;
}
return semctl(sem_id, 0, GETVAL);
}
/* Define sembuf structures to lock and unlock the semaphore */
-struct sembuf sem_lock={ /* to lock semaphore */
- 0, /* semaphore number (only one so 0) */
- -1, /* operation (-1 to use resource) */
- SEM_UNDO}; /* flag (set for undo at exit) */
-struct sembuf sem_ulock={ /* to unlock semaphore */
- 0, /* semaphore number (only one so 0) */
- 1, /* operation (1 to release resource) */
- SEM_UNDO}; /* flag (in this case 0) */
+struct sembuf sem_lock={ /* to lock semaphore */
+ 0, /* semaphore number (only one so 0) */
+ -1, /* operation (-1 to use resource) */
+ SEM_UNDO}; /* flag (set for undo at exit) */
+struct sembuf sem_ulock={ /* to unlock semaphore */
+ 0, /* semaphore number (only one so 0) */
+ 1, /* operation (1 to release resource) */
+ SEM_UNDO}; /* flag (in this case 0) */
/* Function MutexLock: to lock a mutex/semaphore */
int MutexLock(int sem_id)
{