diff --git a/scheme/user.rs b/scheme/user.rs index fbd27264c7e375a4bc078d535bba15c71a4cf4a1..c2d8650f2fae4cd8b416a20b2ad54243843db792 100644 --- a/scheme/user.rs +++ b/scheme/user.rs @@ -59,7 +59,10 @@ impl UserInner { }; let len = self.todo.send(packet); - context::event::trigger(ROOT_SCHEME_ID.load(Ordering::SeqCst), self.handle_id, EVENT_READ, len * mem::size_of::<Packet>()); + //TODO: Use O_NONBLOCK and send one notification + for _i in 0 .. len { + context::event::trigger(ROOT_SCHEME_ID.load(Ordering::SeqCst), self.handle_id, EVENT_READ, mem::size_of::<Packet>()); + } Error::demux(self.done.receive(&id)) }