From b1b652b943e6422da60430f51b925e39805e18f9 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 9 Feb 2017 19:03:29 +0100 Subject: [PATCH] Fix Kqueue buil with the new watcher-transport --- source/tanya/async/event/kqueue.d | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/source/tanya/async/event/kqueue.d b/source/tanya/async/event/kqueue.d index 79eac1d..0e448af 100644 --- a/source/tanya/async/event/kqueue.d +++ b/source/tanya/async/event/kqueue.d @@ -237,29 +237,26 @@ class KqueueLoop : SelectorLoop { assert(connections.length > events[i].ident); - IOWatcher io = cast(IOWatcher) connections[events[i].ident]; + auto transport = cast(SelectorStreamTransport) connections[events[i].ident]; // If it is a ConnectionWatcher. Accept connections. - if (io is null) + if (transport is null) { acceptConnections(connections[events[i].ident]); } else if (events[i].flags & EV_ERROR) { - kill(io, null); + kill(transport, null); } else if (events[i].filter == EVFILT_READ) { - auto transport = cast(SelectorStreamTransport) io.transport; - assert(transport !is null); - SocketException exception; try { ptrdiff_t received; do { - received = transport.socket.receive(io.output[]); - io.output += received; + received = transport.socket.receive(transport.output[]); + transport.output += received; } while (received); } @@ -269,18 +266,15 @@ class KqueueLoop : SelectorLoop } if (transport.socket.disconnected) { - kill(io, exception); + kill(transport, exception); } - else if (io.output.length) + else if (transport.output.length) { - pendings.enqueue(io); + pendings.enqueue(transport); } } else if (events[i].filter == EVFILT_WRITE) { - auto transport = cast(SelectorStreamTransport) io.transport; - assert(transport !is null); - transport.writeReady = true; if (transport.input.length) {