Async fixes for Linux.
This commit is contained in:
parent
cf5c8a204e
commit
634a416c67
1 changed files with 7 additions and 6 deletions
|
|
@ -719,8 +719,9 @@ else:
|
||||||
else:
|
else:
|
||||||
readBuffer.setLen(res)
|
readBuffer.setLen(res)
|
||||||
retFuture.complete(readBuffer)
|
retFuture.complete(readBuffer)
|
||||||
if not cb(socket):
|
# TODO: The following causes a massive slowdown.
|
||||||
addRead(socket, cb)
|
#if not cb(socket):
|
||||||
|
addRead(socket, cb)
|
||||||
return retFuture
|
return retFuture
|
||||||
|
|
||||||
proc send*(socket: TAsyncFD, data: string): PFuture[void] =
|
proc send*(socket: TAsyncFD, data: string): PFuture[void] =
|
||||||
|
|
@ -746,8 +747,9 @@ else:
|
||||||
result = false # We still have data to send.
|
result = false # We still have data to send.
|
||||||
else:
|
else:
|
||||||
retFuture.complete()
|
retFuture.complete()
|
||||||
if not cb(socket):
|
# TODO: The following causes crashes.
|
||||||
addWrite(socket, cb)
|
#if not cb(socket):
|
||||||
|
addWrite(socket, cb)
|
||||||
return retFuture
|
return retFuture
|
||||||
|
|
||||||
proc acceptAddr*(socket: TAsyncFD):
|
proc acceptAddr*(socket: TAsyncFD):
|
||||||
|
|
@ -769,8 +771,7 @@ else:
|
||||||
else:
|
else:
|
||||||
register(client.TAsyncFD)
|
register(client.TAsyncFD)
|
||||||
retFuture.complete(($inet_ntoa(sockAddress.sin_addr), client.TAsyncFD))
|
retFuture.complete(($inet_ntoa(sockAddress.sin_addr), client.TAsyncFD))
|
||||||
if not cb(socket):
|
addRead(socket, cb)
|
||||||
addRead(socket, cb)
|
|
||||||
return retFuture
|
return retFuture
|
||||||
|
|
||||||
proc accept*(socket: TAsyncFD): PFuture[TAsyncFD] =
|
proc accept*(socket: TAsyncFD): PFuture[TAsyncFD] =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue