Make waitForData not assert fail on close fix #110

This commit is contained in:
WebFreak001 2018-12-20 02:10:40 +01:00
parent 26b6190743
commit c8ab6ae2f8
2 changed files with 46 additions and 1 deletions

View file

@ -569,7 +569,13 @@ mixin(tracer);
alias waiter = Waitable!(IOCallback,
cb => eventDriver.sockets.read(m_socket, m_context.readBuffer.peekDst(), mode, cb),
(cb) { cancelled = true; eventDriver.sockets.cancelRead(m_socket); },
(sock, st, nb) { assert(sock == m_socket); status = st; nbytes = nb; }
(sock, st, nb) {
if (m_socket == StreamSocketFD.invalid) {
cancelled = true;
return;
}
assert(sock == m_socket); status = st; nbytes = nb;
}
);
asyncAwaitAny!(true, waiter)(timeout);