Excellent, time to throwing out some more stuff picked up from college CS classes

(Where sleep(0) was advocated for that usage)
For arguments sake though, assuming a normal priority task is this a terrible thing? Yes it still preempts background/very low priority things but at the same time this is meant to be an interactive application, where losing to much time is already an issue, and its expected to eat the system load? Within the Linux world again (sorry) if you are using the CFS (Completely Fair Scheduler), those background tasks will still eventually grab processor time.
I guess I'd hold the position that assuming you are trying to run after a certain time delta (say a minimum of 1 ms) that sleep(0) represents a fair compromise between a busy loop that checks time until its incremented (I've seen this before, its sorta scary), and calling sleep(n) where you have an implicit large error in timing and can fall behind your goal. In the busy loop case, even assuming the application is a high priority then sleep(0) is no worse then spinning (probably still better as any other high priority process can grab time). Although in terms of something like Doom3 with that 60FPS cap, that's still low enough I've been trying to trust the scheduler with regards to sleeping appropriately, any thoughts here in terms of sleeping to long/or finer granularity?
Although its definitely something to consider, I hadn't really heard that charge leveled against sleep(0) before, I'll have to play with that here and see what it does to a low priority process. I'd be interested to see how starved it could become.