refactor(client): remove weak ref

This commit is contained in:
Nova
2022-06-05 15:58:21 -04:00
parent 57be2cd8e8
commit bb26038030

View File

@@ -5,20 +5,17 @@ use mio::net::UnixStream;
use rccell::{RcCell, WeakCell}; use rccell::{RcCell, WeakCell};
pub struct Client<'a> { pub struct Client<'a> {
weak_ref: WeakCell<Client<'a>>, pub messenger: Messenger<'a>,
messenger: Messenger<'a>,
scenegraph: Scenegraph<'a>, scenegraph: Scenegraph<'a>,
} }
impl<'a> Client<'a> { impl<'a> Client<'a> {
pub fn from_connection(connection: UnixStream) -> RcCell<Self> { pub fn from_connection(connection: UnixStream) -> RcCell<Self> {
let client = RcCell::new(Client { let client = RcCell::new(Client {
weak_ref: WeakCell::new(),
scenegraph: Default::default(), scenegraph: Default::default(),
messenger: Messenger::new(connection), messenger: Messenger::new(connection),
}); });
client.borrow_mut().scenegraph.set_client(client.clone()); client.borrow_mut().scenegraph.set_client(client.clone());
client.borrow_mut().weak_ref = client.downgrade();
spatial::create_interface(client.clone()); spatial::create_interface(client.clone());
client client
} }