diff options
author | cheatfate <ka@hardcore.kiev.ua> | 2016-10-16 04:03:45 +0300 |
---|---|---|
committer | cheatfate <ka@hardcore.kiev.ua> | 2016-10-16 04:03:45 +0300 |
commit | 0ff7fbea34cde649ac085c7c6da6a0e61bfd873b (patch) | |
tree | 61f1b975bb7c74fed554fcb7e4a0ac81f0ad86a3 /lib/upcoming | |
parent | 2d2b1a9d481bffaecac35e1e52929cea66f69e0e (diff) | |
download | Nim-0ff7fbea34cde649ac085c7c6da6a0e61bfd873b.tar.gz |
Fix handle of error only events.
Diffstat (limited to 'lib/upcoming')
-rw-r--r-- | lib/upcoming/asyncdispatch.nim | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/upcoming/asyncdispatch.nim b/lib/upcoming/asyncdispatch.nim index 29b955c46..731ef52dc 100644 --- a/lib/upcoming/asyncdispatch.nim +++ b/lib/upcoming/asyncdispatch.nim @@ -1194,21 +1194,21 @@ else: var fd = keys[i].fd.SocketHandle let events = keys[i].events - if Event.Read in events: + if Event.Read in events or events == {Event.Error}: let cb = keys[i].data.readCB - doAssert(cb != nil) - if cb(fd.AsyncFD): - p.selector.withData(fd, adata) do: - if adata.readCB == cb: - adata.readCB = nil + if cb != nil: + if cb(fd.AsyncFD): + p.selector.withData(fd, adata) do: + if adata.readCB == cb: + adata.readCB = nil - if Event.Write in events: + if Event.Write in events or events == {Event.Error}: let cb = keys[i].data.writeCB - doAssert(cb != nil) - if cb(fd.AsyncFD): - p.selector.withData(fd, adata) do: - if adata.writeCB == cb: - adata.writeCB = nil + if cb != nil: + if cb(fd.AsyncFD): + p.selector.withData(fd, adata) do: + if adata.writeCB == cb: + adata.writeCB = nil when supportedPlatform: if (customSet * events) != {}: |