Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSThread sleepUntilDate w/ dateWithTimeIntervalSinceNow and intervals < 1sec



On 10/30/05, Nicolas Berloquin <email@hidden> wrote:
> Hello !
>
> I have a background thread that needs to loop every 25ms.
> After each loop, I calculate the time spent inside the loop, then call :
>
> [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: ]];
>
> with a value between ]0;25ms]. But I'm getting strange offsets in what
> should be a continuous heartbeat.
>
> The docs talk about :
> + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)seconds
>
> NSTimeInterval being a double, I assumed I could pass miliseconds,
> or even microseconds. Does it actually round the parameter to the
> nearest second?

It certainly doesn't round to whole seconds. Expecting accuracy to be
within ±1 ms would not be unreasonable.

By the way, why calculate the time it takes to execute the loop when
you could do this:

while (true)
{
        NSDate *sleepDate = [[NSDate alloc] initWithTimeIntervalSinceNow:0.025];
        NSLog(@"work");
        [NSThread sleepUntilDate:sleepDate];
        [sleepDate release];
}
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden

References: 
 >NSThread sleepUntilDate w/ dateWithTimeIntervalSinceNow and intervals < 1sec (From: Nicolas Berloquin <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.