#define UNREASONABLE_LAT (NSEC_PER_SEC * 5) /* hopefully we resume in 5 secs */
#define SUSPEND_SECS 15 int alarmcount; int alarm_clock_id; struct timespec start_time;
char *clockstring(int clockid)
{ switch (clockid) { case CLOCK_REALTIME: return"CLOCK_REALTIME"; case CLOCK_MONOTONIC: return"CLOCK_MONOTONIC"; case CLOCK_PROCESS_CPUTIME_ID: return"CLOCK_PROCESS_CPUTIME_ID"; case CLOCK_THREAD_CPUTIME_ID: return"CLOCK_THREAD_CPUTIME_ID"; case CLOCK_MONOTONIC_RAW: return"CLOCK_MONOTONIC_RAW"; case CLOCK_REALTIME_COARSE: return"CLOCK_REALTIME_COARSE"; case CLOCK_MONOTONIC_COARSE: return"CLOCK_MONOTONIC_COARSE"; case CLOCK_BOOTTIME: return"CLOCK_BOOTTIME"; case CLOCK_REALTIME_ALARM: return"CLOCK_REALTIME_ALARM"; case CLOCK_BOOTTIME_ALARM: return"CLOCK_BOOTTIME_ALARM"; case CLOCK_TAI: return"CLOCK_TAI";
} return"UNKNOWN_CLOCKID";
}
longlong timespec_sub(struct timespec a, struct timespec b)
{ longlong ret = NSEC_PER_SEC * b.tv_sec + b.tv_nsec;
ret -= NSEC_PER_SEC * a.tv_sec + a.tv_nsec; return ret;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.