wangzhengquan
2021-01-13 8df2b63c21d0aabaa894930e3ab1ea63c49d47ff
src/px_sem_util.cpp
@@ -1,13 +1,16 @@
#include "px_sem_util.h"
#define NANO 1000000000
struct timespec PXSemUtil::calc_sem_timeout(const struct timespec *ts) {
   int tmp_sec;
   struct timespec res;
  struct timespec timeout;
  if (clock_gettime(CLOCK_REALTIME, &timeout) == -1)
      err_exit(errno, "clock_gettime");
  timeout.tv_nsec += ts->tv_nsec;
  tmp_sec =  timeout.tv_nsec / 10e9;
  timeout.tv_nsec =  timeout.tv_nsec - tmp_sec * 10e9;
  timeout.tv_sec += ts->tv_sec + tmp_sec;
  return timeout;
  res.tv_sec = timeout.tv_sec + ts->tv_sec;
  res.tv_nsec = timeout.tv_nsec + ts->tv_nsec;
  res.tv_sec = res.tv_sec + floor(res.tv_nsec / NANO);
  res.tv_nsec = res.tv_nsec % NANO;
  return res;
}