mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-22 08:53:29 +00:00
Fix observer missing in socket for mongoose support
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
a2e9b0aaae
commit
30a2553a70
@ -2,7 +2,7 @@
|
||||
|
||||
use super::{connected::ConnectedStream, init::InitStream};
|
||||
use crate::{
|
||||
events::IoEvents,
|
||||
events::{IoEvents, Observer},
|
||||
net::iface::{AnyBoundSocket, IpEndpoint, RawTcpSocket},
|
||||
prelude::*,
|
||||
process::signal::Pollee,
|
||||
@ -71,6 +71,26 @@ impl ConnectingStream {
|
||||
self.update_io_events(pollee);
|
||||
}
|
||||
|
||||
pub fn register_observer(
|
||||
&self,
|
||||
pollee: &Pollee,
|
||||
observer: Weak<dyn Observer<IoEvents>>,
|
||||
mask: IoEvents,
|
||||
) -> Result<()> {
|
||||
pollee.register_observer(observer, mask);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn unregister_observer(
|
||||
&self,
|
||||
pollee: &Pollee,
|
||||
observer: &Weak<dyn Observer<IoEvents>>,
|
||||
) -> Result<Weak<dyn Observer<IoEvents>>> {
|
||||
pollee
|
||||
.unregister_observer(observer)
|
||||
.ok_or_else(|| Error::with_message(Errno::EINVAL, "fails to unregister observer"))
|
||||
}
|
||||
|
||||
pub(super) fn update_io_events(&self, pollee: &Pollee) {
|
||||
if self.conn_result.read().is_some() {
|
||||
return;
|
||||
|
Reference in New Issue
Block a user