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