日期:2014-05-16  浏览次数:20738 次

超时问题的时间设置
timespec m_tWaitTime

m_tWaitTime.tv_sec = time(NULL) + m_nIntervalMilliseconds/1000;
m_tWaitTime.tv_nsec = (m_nIntervalMilliseconds % 1000) * 1000000000;

pthread_cond_timedwait(&m_tCond, &m_mutex, &m_tWaitTime);// 不准


m_nIntervalMilliseconds 设置 1000以上 比如 2000 3000都比较准。但是小于1000就明显不准了 比如900

------解决方案--------------------
大哥,这是linux内核一直存在的问题,咱们是解决不了的。
------解决方案--------------------
设置成1000以上,因为你那单位是毫秒,所以1000ms也就是1s
我想知道你是怎么样知道不准的?


------解决方案--------------------
是不是在小于1000的时候很快就返回了,而一旦多余1000的话,确实有明显的延时效果。
------解决方案--------------------
探讨
timespec m_tWaitTime

m_tWaitTime.tv_sec = time(NULL) + m_nIntervalMilliseconds/1000;
m_tWaitTime.tv_nsec = (m_nIntervalMilliseconds % 1000) * 1000000000;

pthread_cond_timedwait(&m_tCond, ……