From 8e6d9fcdd4e72e8ae30ec8abba29cc8bb2f915a9 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Thu, 4 Jul 2024 20:15:03 +0300 Subject: [PATCH] add port lifesaver --- src/jack/ports.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/jack/ports.rs b/src/jack/ports.rs index a1817431..6fb63b50 100644 --- a/src/jack/ports.rs +++ b/src/jack/ports.rs @@ -2,6 +2,7 @@ use super::*; #[derive(Default)] pub struct JackPorts { + lifesaver: Arc<()>, pub audio_ins: BTreeMap>, pub midi_ins: BTreeMap>, pub audio_outs: BTreeMap>, @@ -21,22 +22,22 @@ impl JackPorts { let mut unowned = UnownedJackPorts::default(); for (name, port) in self.midi_ins.iter() { unowned.midi_ins.insert(name.clone(), unsafe { - Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&Arc::default())) + Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&self.lifesaver)) }); } for (name, port) in self.midi_outs.iter() { unowned.midi_outs.insert(name.clone(), unsafe { - Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&Arc::default())) + Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&self.lifesaver)) }); } for (name, port) in self.audio_ins.iter() { unowned.audio_ins.insert(name.clone(), unsafe { - Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&Arc::default())) + Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&self.lifesaver)) }); } for (name, port) in self.audio_outs.iter() { unowned.audio_outs.insert(name.clone(), unsafe { - Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&Arc::default())) + Port::from_raw(::jack::Unowned, client.raw(), port.raw(), Arc::downgrade(&self.lifesaver)) }); } unowned