fix(registry): make add always succeed
This commit is contained in:
@@ -6,10 +6,10 @@ use std::sync::{Arc, Weak};
|
||||
pub struct Registry<T>(RwLock<Slab<Weak<T>>>);
|
||||
|
||||
impl<T> Registry<T> {
|
||||
pub fn add(&self, t: T) -> Result<Arc<T>> {
|
||||
pub fn add(&self, t: T) -> Arc<T> {
|
||||
let t_arc = Arc::new(t);
|
||||
self.0.write().insert(Arc::downgrade(&t_arc));
|
||||
Ok(t_arc)
|
||||
t_arc
|
||||
}
|
||||
pub fn get_valid_contents(&self) -> Vec<Arc<T>> {
|
||||
self.0
|
||||
|
||||
@@ -76,7 +76,7 @@ impl PulseSender {
|
||||
);
|
||||
|
||||
let sender = Default::default();
|
||||
let sender = PULSE_SENDER_REGISTRY.add(sender)?;
|
||||
let sender = PULSE_SENDER_REGISTRY.add(sender);
|
||||
let _ = node.pulse_sender.set(sender);
|
||||
node.add_local_signal("setMask", PulseSender::set_mask_flex);
|
||||
node.add_local_method("getReceivers", PulseSender::get_receivers_flex);
|
||||
@@ -167,7 +167,7 @@ impl<'a> PulseReceiver {
|
||||
field: Arc::downgrade(&field),
|
||||
mask: Default::default(),
|
||||
};
|
||||
let receiver = PULSE_RECEIVER_REGISTRY.add(receiver)?;
|
||||
let receiver = PULSE_RECEIVER_REGISTRY.add(receiver);
|
||||
let _ = node.pulse_receiver.set(receiver);
|
||||
node.add_local_signal("setMask", PulseReceiver::set_mask_flex);
|
||||
node.add_local_signal("sendData", PulseReceiver::send_data_flex);
|
||||
|
||||
Reference in New Issue
Block a user