Relay Wine STDIO with SCHED_OTHER

I haven't seen this cause issues myself, but it would not surprise me if
a plugin that produces a constant stream of FIXMEs would steal resources
from audio processing if the threads that are relaying those messages
are set to SCHED_FIFO.
This commit is contained in:
Robbert van der Helm
2021-01-24 17:02:56 +01:00
parent 19fd99b58e
commit ffe46e225c
3 changed files with 16 additions and 1 deletions
+6
View File
@@ -91,8 +91,14 @@ class PluginBridge {
sockets.base_dir.string()}))),
has_realtime_priority(has_realtime_priority_promise.get_future()),
wine_io_handler([&]() {
// We no longer run this thread with realtime scheduling because
// plugins that produce a lot of FIXMEs could in theory cause
// dropouts that way, but we still need to run this from a thread
// to check whether we support it
has_realtime_priority_promise.set_value(
set_realtime_priority(true));
set_realtime_priority(false);
io_context.run();
}) {}