- Timestamp:
- 06/25/12 07:11:38 (12 years ago)
- Files:
-
- trunk/libffado/src/libutil/SystemTimeSource.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/libutil/SystemTimeSource.cpp
r2171 r2172 72 72 ts.tv_sec = usecs / (1000000LL); 73 73 ts.tv_nsec = (usecs % (1000000LL)) * 1000LL; 74 clock_nanosleep(clock_id, 0, &ts, NULL); 74 75 // clock_nanosleep() is not implemented for CLOCK_MONOTONIC_RAW. 76 // If the clock source is CLOCK_MONOTONIC_RAW, use CLOCK_MONOTONIC 77 // as an approximation for the purposes of sleep timing. 78 clockid_t clk = (clock_id==CLOCK_MONOTONIC_RAW)?CLOCK_MONOTONIC:clock_id; 79 80 clock_nanosleep(clk, 0, &ts, NULL); 75 81 } 76 82 … … 79 85 { 80 86 #if USE_ABSOLUTE_NANOSLEEP 87 // CLOCK_MONOTONIC_RAW isn't supported by clock_nanosleep() 88 clockid_t clk = (clock_id==CLOCK_MONOTONIC_RAW)?CLOCK_MONOTONIC:clock_id; 81 89 struct timespec ts; 82 90 ts.tv_sec = wake_at_usec / (1000000LL); … … 85 93 "clock_nanosleep until %"PRId64" sec, %"PRId64" nanosec\n", 86 94 (int64_t)ts.tv_sec, (int64_t)ts.tv_nsec); 87 int err = clock_nanosleep(cl ock_id, TIMER_ABSTIME, &ts, NULL);95 int err = clock_nanosleep(clk, TIMER_ABSTIME, &ts, NULL); 88 96 if(err) { 89 97 // maybe signal occurred, but we're going to ignore that