LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

6-8сек задержки на ровном месте в дефолтном конфиге это полюбому баг.

Попробуй просто

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main(void) {
  struct timeval tv0, tv;
  int delta;
  unsigned long i;
  gettimeofday(&tv0, NULL);
  for(i=0; ; i++) {
    usleep(200000);
    gettimeofday(&tv, NULL);
    delta = (tv.tv_sec-tv0.tv_sec)*1000 + (tv.tv_usec-tv0.tv_usec)/1000;
    if(delta<100 || delta>1000) fprintf(stderr, "wrong delta %d ms at cycle %lu\n", delta, i);
    tv0 = tv;
  }
}
Если тут будут эти ошибки - ищи где баг в системе, если тут нет - ищи баг в своём коде. Ну или ищи баг таки в ядре, провоцируемый какими-то побочными эффектами твоего кода (найди какими). Поставил себе этот код работать, через час посмотрю вывод.

Исходная версия firkax, :

6-8сек задержки на ровном месте в дефолтном конфиге это полюбому баг.

Попробуй просто

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main(void) {
  struct timeval tv0, tv;
  int delta;
  unsigned long i;
  gettimeofday(&tv0, NULL);
  for(i=0; ; i++) {
    usleep(200000);
    gettimeofday(&tv, NULL);
    delta = (tv.tv_sec-tv0.tv_sec)*1000 + (tv.tv_usec-tv0.tv_usec)/1000;
    if(delta<100 || delta>1000) fprintf(stderr, "wrong delta %d ms at cycle %lu\n", delta, i);
    tv0 = tv;
  }
}
Если тут будут эти ошибки - ищи где баг в системе, если тут нет - ищи баг в своём коде.