wangzhengquan
2021-01-11 be9fe29197f7c8201ef5dec8e7667b59ba8d3851
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "px_sem_util.h"
 
struct timespec PXSemUtil::calc_sem_timeout(const struct timespec *ts) {
    int tmp_sec;
  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;
}