I'm trying to time part of my program and coming up with something I can't explain. I don't expect great accuracy with the sample code here. But I'd like to understand what is happening. static boost::posix_time::ptime MillisecondsFromNow(int milliseconds) { return(boost::posix_time::ptime(boost::posix_time::second_clock::universal_time()) + boost::posix_time::milliseconds(milliseconds)); } Code segment: nanosecond_type const twenty_seconds(20 * 1000000000LL); cpu_timer timer; long count = 0; while(true) { boost::thread::sleep(MillisecondsFromNow(1000)); cpu_times const elapsed_times(timer.elapsed()); nanosecond_type const elapsed(elapsed_times.wall); if (elapsed >= twenty_seconds) { break; } count++; } std::cout << count << '\n'; So I'm running for 20 seconds and delaying each time for a second. So I would expect to get output of 19, maybe 20 or 18. Instead I'm getting around 38-40 I've tried .system and .user and get different values. But never something close to 20. This is on Windows. ___________________________________ John Davies Contractor Home Respiratory Care Philips Home Healthcare Solutions 1740 Golden Mile Highway Monroeville, PA 15146 Email: john.davies@philips.com Fax: 724-387-4109 ________________________________ The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.