Re: mach_absolute_time() vs. sleep() [solved]
site_archiver@lists.apple.com Delivered-To: Darwin-dev@lists.apple.com It was my fault. It turned out to be a pretty idiotic problem: should be "return diff / conversion;" Go go copying samples. For completeness: -(double)machElapsedTime:(uint64_t) start endTime: (uint64_t) endTime { uint64_t diff = endTime - start; static double conversion = 0.0; if (conversion == 0.0) { mach_timebase_info_data_t info; kern_return_t err = mach_timebase_info(&info); if (err == 0) conversion = 1e9 * info.numer / info.denom; } return diff / conversion; } On Apr 30, 2008, at 4:09 PM, Terry Lambert wrote: Can you assure me that this is not for a homework assignment? -- Terry On Apr 30, 2008, at 3:30 PM, Terry Lambert wrote: It should be: double mach_elapsed_time(uint64_t start, uint64_t endTime) { _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com return conversion * (double) diff; Actually, it doesn't; the margin is just small enough that you don't notice it. On Apr 30, 2008, at 1:34 PM, Kristopher Matthews wrote: Care to elaborate? This code works fine in all circumstances where sleep() is not called. On Apr 30, 2008, at 4:13 AM, Kristopher Matthews wrote: If you see my followup message, I wrote the sample code for this email incorrectly. My apologies. :) You are doing a couple of really simple things wrong, but the worst is being wrong about operator precedence order in C. smime.p7s
participants (1)
-
Kristopher Matthews