#include "libnazgul.h" #include "ids.h" #define DEBUG 0 int msgPoolDataTabLock(msgSpace * space) { int semval; sem_t *poolDataTabSemFd; semval = 0; if (DEBUG) { printf("Locking %s\n", space->poolDataTabSemId); } poolDataTabSemFd = sem_open(space->poolDataTabSemId, O_CREAT, SEM_DEFAULT_MODE, 1); if (poolDataTabSemFd == SEM_FAILED) { NZG_ERROR("sem_open", space->poolDataTabSemId); goto ERROR; } if (sem_wait(poolDataTabSemFd) == -1) { NZG_ERROR("sem_wait", space->poolDataTabSemId); goto ERROR; } sem_getvalue(poolDataTabSemFd, &semval); if (DEBUG) { printf("(AfternValue:%d)\n", semval); } sem_close(poolDataTabSemFd); return 0; ERROR: return -1; }