diff --git a/src/scheme/user.rs b/src/scheme/user.rs index d7499c9e7c..a7f343666b 100644 --- a/src/scheme/user.rs +++ b/src/scheme/user.rs @@ -141,11 +141,11 @@ impl UserInner { self.todo.send(packet); event::trigger(self.root_id, self.handle_id, EVENT_READ); - unsafe { - context::switch(); - } - loop { + unsafe { + context::switch(); + } + let mut states = self.states.lock(); match states.entry(id) { // invalid state