diff --git a/server/stat/src/listener/wslistener.rs b/server/stat/src/listener/wslistener.rs index bbac0a4..0670465 100644 --- a/server/stat/src/listener/wslistener.rs +++ b/server/stat/src/listener/wslistener.rs @@ -34,7 +34,7 @@ pub struct WsListener { work_thread: Option>, socket_hash: std::sync::Mutex>>, cur_socket_handle: AtomicU16, - pub upstream: std::sync::Weak>, + pub upstream: std::sync::Mutex>>>, tokio_rt: Runtime, down_pack_queue: Arc>>, up_pack_queue: Arc>>, @@ -339,7 +339,6 @@ impl WsListener { }); })); { - let upstream = self.upstream.clone(); let down_pack_queue = self.down_pack_queue.clone(); let up_pack_queue = self.up_pack_queue.clone(); self.tokio_rt.spawn(async move { @@ -347,7 +346,7 @@ impl WsListener { match result { Ok(v) => { let a = Arc::new(Mutex::new(v)); - //WsListener::instance().upstream = Arc::downgrade(&a); + WsListener::instance().upstream.lock().unwrap().replace(a.clone()); println!("connect ok"); upstream_enter(a, down_pack_queue, up_pack_queue).await; },