looper3339
2021-08-09 567e7bba26bb8fe485be6c2ddfaaf8ab77eb6141
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,7 +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)
@@ -21,8 +19,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 +28,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 +44,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 +76,8 @@
  while (semop(semid, &sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_dec");
      err_msg(errno, "svsem_dec");
      return -1;
    }
@@ -266,4 +261,4 @@