【发布时间】:2012-04-24 15:29:06
【问题描述】:
我正在编写一个线程库,并且在调度线程时我需要知道它们已经准备好多长时间。每个 Thread 实例都有一个timeval _timeInReady 字段,当我将一个实例推送到就绪队列时,我调用了这个函数:
void Thread::startTiming() {
gettimeofday(&_timeInReady, NULL);
}
当我想检查我调用的当前_timeInReady 值时:
double Thread::getTimeInReady() const {
return TIME(_timeInReady.tv_sec,_timeInReady.tv_usec);
}
TIME 是#define TIME(a,b) ((a*1000000) + b),所以我得到了总时间(以微秒为单位)。
我的问题是,由于某种原因,当我在一段时间后检查该字段时,我得到了疯狂的负值(例如 -10293843)。
有什么想法吗?谢谢!
【问题讨论】:
-
究竟是什么让你认为你有负数?如果是打印声明,请出示。如果是调试器检查,请告诉我们更多信息。
标签: c++ gettimeofday