From ab578ff5dbdc19b9647e3535e7d41306e46fab5d Mon Sep 17 00:00:00 2001 From: Fu Juntang <StrongTiger_001@163.com> Date: 星期一, 30 八月 2021 19:32:58 +0800 Subject: [PATCH] Fix the return stat check. --- src/svsem.cpp | 14 ++++---------- 1 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/svsem.cpp b/src/svsem.cpp index 27c88a8..00e6dbc 100644 --- a/src/svsem.cpp +++ b/src/svsem.cpp @@ -1,7 +1,6 @@ #include "svsem.h" int svsem_get(key_t key, unsigned int value) { -// printf("==================svsem_get===============================\n"); int semid, perms; perms = S_IRUSR | S_IWUSR; @@ -12,8 +11,6 @@ union semun arg; struct sembuf sop; - //logger.info("%ld: created semaphore\n", (long)getpid()); - arg.val = 0; /* So initialize it to 0 */ if (semctl(semid, 0, SETVAL, arg) == -1) err_exit(errno, "semctl 1"); @@ -21,8 +18,7 @@ arg.val = 1; if (semctl(semid, 1, SETVAL, arg) == -1) err_exit(errno, "semctl 2"); - //logger.info("%ld: initialized semaphore\n", (long)getpid()); - + /* Perform a "no-op" semaphore operation - changes sem_otime so other processes can see we've initialized the set. */ @@ -31,7 +27,6 @@ sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) err_exit(errno, "semop"); - //logger.info("%ld: completed dummy semop()\n", (long)getpid()); } else { /* We didn't create the semaphore set */ @@ -48,12 +43,10 @@ if (semid == -1) err_exit(errno, "semget 2"); - // logger.info("%ld: got semaphore key\n", (long)getpid()); /* Wait until another process has called semop() */ arg.buf = &ds; for (j = 0; j < MAX_TRIES; j++) { - //logger.info("Try %d\n", j); if (semctl(semid, 0, IPC_STAT, arg) == -1) err_exit(errno, "semctl 2"); @@ -82,7 +75,8 @@ while (semop(semid, &sops, 1) == -1) if (errno != EINTR) { - // err_msg(errno, "svsem_dec"); + err_msg(errno, "svsem_dec"); + return -1; } @@ -266,4 +260,4 @@ - \ No newline at end of file + -- Gitblit v1.8.0