http://bugs.winehq.org/show_bug.cgi?id=28723
--- Comment #129 from Andrew Eikum aeikum@codeweavers.com 2012-02-06 09:55:48 CST --- Yeah, we ought to evaluate how we do our callbacks and timers. CreateTimerQueueTimer doesn't seem sufficient.
WinMM's timer code does its own management with standard Unix calls. Basically, it uses poll(3)'s timeout parameter to sleep between callbacks. We could do similar in our drivers, which might be more accurate than the TimerQueue code.
We could also hook into ALSA/OSS's callback mechanisms, but frankly giving more responsibility to these systems is the last thing I want to do at this point.