aboutsummaryrefslogtreecommitdiff
path: root/pulse/src/runnable/pulse.rs
diff options
context:
space:
mode:
Diffstat (limited to 'pulse/src/runnable/pulse.rs')
-rw-r--r--pulse/src/runnable/pulse.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/pulse/src/runnable/pulse.rs b/pulse/src/runnable/pulse.rs
index a28c073..86819a9 100644
--- a/pulse/src/runnable/pulse.rs
+++ b/pulse/src/runnable/pulse.rs
@@ -122,7 +122,10 @@ impl PulseMainLoop {
impl Drop for PulseMainLoop {
fn drop(&mut self) {
if !self.main_loop.is_null() {
- unsafe { pa_mainloop_free(self.main_loop); }
+ unsafe {
+ pa_mainloop_quit(self.main_loop, 0);
+ pa_mainloop_free(self.main_loop);
+ }
}
self.main_loop = std::ptr::null_mut();
}
@@ -139,6 +142,7 @@ impl Drop for PulseMainLoop {
extern {
fn pa_mainloop_new() -> *mut PaMainloop;
fn pa_mainloop_wakeup(_ : *mut PaMainloop);
+ fn pa_mainloop_quit(_ : *mut PaMainloop, retval : c_int);
fn pa_mainloop_free(_ : *mut PaMainloop);
fn pa_mainloop_get_api(_ : *mut PaMainloop) -> *mut PaMainloopApi;