Merge pull request #111 from WebFreak001/fix-110
Make waitForData not assert fail on close fix #110
This commit is contained in:
commit
0d3338a16b
2 changed files with 47 additions and 2 deletions
|
@ -569,12 +569,18 @@ 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);
|
||||
|
||||
if (cancelled) return false;
|
||||
if (cancelled || !m_context) return false;
|
||||
|
||||
logTrace("Socket %s, read %s bytes: %s", m_socket, nbytes, status);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue