LibAudio: Don't auto-start the convenience enqueuer thread

This will conflict with apps that don't use this thread and it also
creates unnecessary overhead for non-enqueuing clients like AudioApplet.
Use the new Thread is_started info to start the thread only if necessary
(on first call to async_enqueue).
This commit is contained in:
kleines Filmröllchen 2022-07-13 10:35:35 +02:00 committed by Linus Groh
parent 91913fba59
commit 763cda227f

View file

@ -33,7 +33,7 @@ ConnectionToServer::ConnectionToServer(NonnullOwnPtr<Core::Stream::LocalSocket>
return (intptr_t) nullptr;
}))
{
m_background_audio_enqueuer->start();
async_pause_playback();
set_buffer(*m_buffer);
}
@ -56,6 +56,9 @@ void ConnectionToServer::die()
ErrorOr<void> ConnectionToServer::async_enqueue(FixedArray<Sample>&& samples)
{
if (!m_background_audio_enqueuer->is_started())
m_background_audio_enqueuer->start();
update_good_sleep_time();
m_user_queue->append(move(samples));
// Wake the background thread to make sure it starts enqueuing audio.