Pass client socket directly to the IOWatcher

This commit is contained in:
2017-02-09 02:58:59 +01:00
committed by Eugene Wissner
parent 63c6226a2a
commit 0e91ea6786
3 changed files with 41 additions and 48 deletions

View File

@ -257,7 +257,7 @@ class IOCPLoop : Loop
auto socket = listener.endAccept(overlapped);
auto protocol = connection.protocol;
auto transport = MmapPool.instance.make!IOCPStreamTransport(socket, protocol);
auto io = MmapPool.instance.make!IOWatcher(transport, protocol);
auto io = MmapPool.instance.make!IOWatcher(transport, socket, protocol);
connection.incoming.enqueue(io);

View File

@ -282,12 +282,12 @@ abstract class SelectorLoop : Loop
}
if (io is null)
{
io = MmapPool.instance.make!IOWatcher(transport, protocol);
io = MmapPool.instance.make!IOWatcher(transport, client, protocol);
connections[client.handle] = io;
}
else
{
io(transport, protocol);
io(transport, client, protocol);
}
reify(io, EventMask(Event.none), EventMask(Event.read, Event.write));