私はsetitimer
と短いタイムアウトを設定し、その後のLinux 2.6.26システム(Debianの5.0.5)上(getitimer
または別のsetitimer
で)設定値を照会するとき、私は戻って、私は設定よりも高い値を取得する:Linuxでsetitimerを切り上げる?
#include <sys/time.h>
#include <iostream>
int main() {
struct itimerval wanted, got;
wanted.it_value.tv_sec = 0;
wanted.it_value.tv_usec = 7000;
wanted.it_interval.tv_sec = 0;
wanted.it_interval.tv_usec = 0;
setitimer(ITIMER_VIRTUAL, &wanted, NULL);
getitimer(ITIMER_VIRTUAL, &got);
std::cerr << "we said: " << wanted.it_value.tv_usec << "\n"
<< "linux set: " << got.it_value.tv_usec << std::endl;
return 0;
}
リターン:
we said: 7000
linux set: 12000
我々はいくつかの計算の後に残っていると報告回数を使用するのでこれは、問題がある、と彼らはあまりにも、あまりにも大きいです。
これは既知の問題ですか? (グーグルがうまくいきませんでした)誰かが良い回避策を持っていますか?