Implement THREAD_PRIORITY_TIME_CRITICAL
Mike Hearn
mike at plan99.net
Tue Apr 4 07:42:00 CDT 2006
> What strikes me is that people are very happy to think that the kernel is
> going to fix this problem. I have to tell you there will be no more
> infrastructure put into the kernel anytime soon to help you here.
I'm confused about this point. You say the kernel won't be changing
anytime soon - does this mean you've given up on getting SCHED_ISO into
the mainline kernels? Can we _really_ not expect any support from the
kernel people here?
> I do not believe you are going to need real time scheduling to get audio to
> work properly. This really is overkill in my opinion.
OK. We'd love some alternative, if only because Alexandre seems dead set
against anything that requires root access, even if that includes not
running Wine itself as root.
> Audio playback and decoding should not really use much cpu.
I'm not even sure we can control that. Some games seem to set up their
own mixing threads and such (looking at the SDL Win32 code it calls
SetThreadPriority itself).
Also this issue is wider than just audio, though this is where it hurts
us the most. I guess there are other cases where a Windows program needs
to raise thread priorities. Isn't Photoshop susceptible to scheduling
differences?
> Lastly, and this is not a comment about wine but all programming in general,
> multithreading cannot be left up to chance.
What do you suggest, that we find some way to make audio threads in Wine
block/swap with more intensive threads? I'm having a hard time imagining
how this would work ... we don't control what the other threads are
doing, so ... hmmmm. I don't see any way to guarantee that every other
thread will block on the audio thread often enough that the buffers
never run down.
thanks -mike
More information about the wine-devel
mailing list