diff options
Diffstat (limited to 'src/listener.rs')
-rw-r--r-- | src/listener.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/listener.rs b/src/listener.rs index d6dc45f..77c690a 100644 --- a/src/listener.rs +++ b/src/listener.rs @@ -80,12 +80,13 @@ struct Listener { impl Listener { fn new(ctx: &mut Context, itf: Arc<Interface>, sock: TcpListener, addr: SocketAddr) -> Listener { info!("Listening on {}", addr); - let io = ctx.register(&sock, Ready::readable()); + let io = ctx.reg_alloc(); + ctx.reg_set(&sock, io, Ready::readable()); Listener { sock: sock, addr: addr, io: io, - timeout: ctx.alloc_timeout(), + timeout: ctx.timeout_alloc(), itf: itf, } } @@ -104,8 +105,8 @@ impl Machine for Listener { error!("Error accepting on {}: {}", self.addr, err); // Stop listening for short time. If this error is not persistent (like // EMFILE), it will solve itself by just waiting. Not much else we can do. - ctx.deregister(&self.sock, self.io); - ctx.reset_timeout(self.timeout, Duration::from_millis(500)); + ctx.reg_unset(&self.sock, self.io); + ctx.timeout_set(self.timeout, Duration::from_millis(500)); } } }, @@ -124,7 +125,7 @@ impl Machine for Listener { } fn timeout(&mut self, ctx: &mut Context, _: TToken) -> Option<Action> { - self.io = ctx.register(&self.sock, Ready::readable()); + ctx.reg_set(&self.sock, self.io, Ready::readable()); None } } |