summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2017-02-09 19:03:29 +0100
committerEugene Wissner <belka@caraus.de>2017-02-09 21:40:52 +0100
commitb1b652b943e6422da60430f51b925e39805e18f9 (patch)
tree0565c081a36ad0085ef7540ec7e525fbc33d8d13 /source
parent530a482402f5578fd4469f14bc9f7e56fcdec767 (diff)
downloadtanya-b1b652b943e6422da60430f51b925e39805e18f9.tar.gz
Fix Kqueue buil with the new watcher-transport
Diffstat (limited to 'source')
-rw-r--r--source/tanya/async/event/kqueue.d22
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)
{