summaryrefslogtreecommitdiff
path: root/libs/backends/pulseaudio/pulseaudio_backend.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-07-26 21:38:40 +0200
committerRobin Gareus <robin@gareus.org>2019-07-26 21:38:40 +0200
commit8a969b56c944c84d42b712fc8759b7d1f276e7da (patch)
tree2550d205910f81db1c0d24cf222b3a91d2593393 /libs/backends/pulseaudio/pulseaudio_backend.cc
parent0717c4c71a36b27f54b6ef59823dca1ed1a139d5 (diff)
PA-backend: Flush buffer and wake up main thread at stop
Diffstat (limited to 'libs/backends/pulseaudio/pulseaudio_backend.cc')
-rw-r--r--libs/backends/pulseaudio/pulseaudio_backend.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/backends/pulseaudio/pulseaudio_backend.cc b/libs/backends/pulseaudio/pulseaudio_backend.cc
index f1923b1097..e6b678e225 100644
--- a/libs/backends/pulseaudio/pulseaudio_backend.cc
+++ b/libs/backends/pulseaudio/pulseaudio_backend.cc
@@ -649,6 +649,10 @@ PulseAudioBackend::stop ()
}
_run = false;
+
+ pa_threaded_mainloop_lock (p_mainloop);
+ sync_pulse (pa_stream_flush (p_stream, stream_operation_cb, this));
+
if (pthread_join (_main_thread, &status)) {
PBD::error << _("PulseAudioBackend: failed to terminate.") << endmsg;
return -1;