wangzhengquan
2021-01-25 c46be6db32872bfd7c4010b43526b5e6bc0fa6a5
src/svsem.cpp
@@ -83,7 +83,7 @@
  while (semop(semid, &sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_dec");
      return errno;
      return -1;
    }
  return 0;
@@ -95,14 +95,9 @@
  sops.sem_num = 0;
  sops.sem_op = -1;
  sops.sem_flg = IPC_NOWAIT | 0;
  if (semop(semid, &sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_dec_nowait");
      return errno;
    }
  return 0;
  return semop(semid, &sops, 1) ;
}
int svsem_timedwait(const int semid, const struct timespec *timeout) {
@@ -115,7 +110,7 @@
  while (semtimedop(semid, &sops, 1, timeout) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_psem_timedwait");
      return errno;
      return -1;
    }
  return 0;
@@ -133,7 +128,7 @@
  int rv = semop(semid, &sops, 1);
  if (rv == -1) {
    // err_msg(errno, "svsem_inc");
    return errno;
    return -1;
  }
  return 0;
}
@@ -149,7 +144,7 @@
  arg.val = 1;
  if (semctl(semid, 1, SETVAL, arg) == -1) {
    err_msg(errno, "svsem_set");
    return errno;
    return -1;
  }   
  //释放mutex
@@ -165,7 +160,7 @@
  while (semop(semid, sops, 2) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "Svsvsem_dec");
      return errno;
      return -1;
    }
@@ -177,7 +172,7 @@
  while (semop(semid, sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "Svsvsem_dec");
      return errno;
      return -1;
    }
  return 0;
@@ -190,7 +185,7 @@
  
  if (semctl(semid, 1, SETVAL, arg) == -1) {
    err_msg(errno, "svsem_set");
    return errno;
    return -1;
  }
  return 0;
}
@@ -212,7 +207,7 @@
  while (semop(semid, &sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_zero");
      return errno;
      return -1;
    }
  return 0;
@@ -229,7 +224,7 @@
  while (semop(semid, &sops, 1) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_zero_nowait");
      return errno;
      return -1;
    }
  return 0;
@@ -245,7 +240,7 @@
  while (semtimedop(semid, &sops, 1, timeout) == -1)
    if (errno != EINTR) {
      // err_msg(errno, "svsem_zero_timeout");
      return errno;
      return -1;
    }
  return 0;
@@ -257,11 +252,8 @@
int svsem_set(int semid, int val) {
  union semun arg;
  arg.val = val;
  if (semctl(semid, 0, SETVAL, arg) == -1) {
    err_msg(errno, "svsem_set");
    return errno;
  }
  return 0;
  return semctl(semid, 0, SETVAL, arg);
}