diff options
| author | Eugen Wissner <belka@caraus.de> | 2017-02-09 19:03:29 +0100 |
|---|---|---|
| committer | Eugene Wissner <belka@caraus.de> | 2017-02-09 21:40:52 +0100 |
| commit | b1b652b943e6422da60430f51b925e39805e18f9 (patch) | |
| tree | 0565c081a36ad0085ef7540ec7e525fbc33d8d13 | |
| parent | 530a482402f5578fd4469f14bc9f7e56fcdec767 (diff) | |
| download | tanya-b1b652b943e6422da60430f51b925e39805e18f9.tar.gz | |
Fix Kqueue buil with the new watcher-transport
| -rw-r--r-- | source/tanya/async/event/kqueue.d | 22 |
1 files 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) { |
