diff --git a/f9/src/app.rs b/f9/src/app.rs index b1df735..2c38605 100644 --- a/f9/src/app.rs +++ b/f9/src/app.rs @@ -159,7 +159,7 @@ impl App { pub fn init(user_app: Rc::>) { App::instance().borrow_mut().user_app = Some(user_app.clone()); App::instance().borrow_mut().tokio_rt.enter(); - App::instance().borrow_mut().init_http_server(); + //App::instance().borrow_mut().init_http_server(); crate::Timer::instance().borrow_mut().init(); user_app.borrow_mut().init(); } diff --git a/r9/src/queue.rs b/r9/src/queue.rs index fc7cc52..a1a8f5d 100644 --- a/r9/src/queue.rs +++ b/r9/src/queue.rs @@ -1,11 +1,12 @@ use std::rc::{Rc, Weak}; use std::cell::RefCell; +use std::sync::Mutex; use r9_macro::SharedFromSelf; use r9_macro_derive::SharedFromSelf; #[derive(SharedFromSelf)] pub struct Queue { - msg_list: Rc::>>, + msg_list: Mutex>>>, pub work_list: Rc::>>, _self_wp: Weak::>, } @@ -14,7 +15,7 @@ impl Queue { pub fn new() -> Rc::> { let this = Rc::new(RefCell::new(Self{ - msg_list: crate::ListHead::::new_head(), + msg_list: Mutex::new(crate::ListHead::::new_head()), work_list: crate::ListHead::::new_head(), _self_wp: Default::default(), })); @@ -23,13 +24,13 @@ impl Queue { } pub fn push(&self, node: &Rc::>>) { - crate::ListHead::::add_tail(&self.msg_list, node); + crate::ListHead::::add_tail(&self.msg_list.lock().unwrap(), node); } pub fn fetch(&self) { - if !self.msg_list.borrow().empty() && + if !self.msg_list.lock().unwrap().borrow().empty() && self.work_list.borrow().empty() { - crate::ListHead::replace_init(&self.work_list, &self.msg_list); + crate::ListHead::replace_init(&self.work_list, &self.msg_list.lock().unwrap()); } } @@ -37,7 +38,7 @@ impl Queue { if !self.work_list.borrow().empty() { return false } - return self.msg_list.borrow().empty() + return self.msg_list.lock().unwrap().borrow().empty() } }