refactor(client): remove weak ref
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user