- if (now(&wait_time)) {
- return -1;
- }
- /* printf("PRE:wait_time.tv_secs = %li, .tv_nsecs = %li\n",
- wait_time.tv_sec, wait_time.tv_nsec); */
-
- /* add in the wait interval */
- if (1000000000 - wait_time.tv_nsec
- <= p_timed_thread->interval_time.tv_nsec) {
- /* perform nsec->sec carry operation */
- wait_time.tv_sec += p_timed_thread->interval_time.tv_sec + 1;
- wait_time.tv_nsec -= 1000000000 - p_timed_thread->interval_time.tv_nsec;
- /* printf("001:wait_time.tv_secs = %li, .tv_nsecs = %li\n",
- wait_time.tv_sec, wait_time.tv_nsec); */
- } else {
- /* no carry needed, just add respective components */
- wait_time.tv_sec += p_timed_thread->interval_time.tv_sec;
- wait_time.tv_nsec += p_timed_thread->interval_time.tv_nsec;
- /* printf("002:wait_time.tv_secs = %li, .tv_nsecs = %li\n",
- wait_time.tv_sec, wait_time.tv_nsec); */
- }
-