Async fixes for Linux.

This commit is contained in:
Dominik Picheta 2014-07-13 00:11:05 +01:00
commit 634a416c67

View file

@ -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] =