diff options
author | Araq <rumpf_a@web.de> | 2018-08-05 14:17:24 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2018-08-05 14:17:24 +0200 |
commit | 7ac6462cbd30bcdb1c3805fbb06be13b3346ce2a (patch) | |
tree | 2e79c210ccd19a7065b36992e19ab74ff061f5df /lib/pure/ioselects/ioselectors_select.nim | |
parent | 282c4f3d0a72fbb4c49df51048e2e13fafcd8659 (diff) | |
parent | 74842ed4a981b6ff168d67d05ee92dce350549cb (diff) | |
download | Nim-7ac6462cbd30bcdb1c3805fbb06be13b3346ce2a.tar.gz |
make at least bootstrapping work
Diffstat (limited to 'lib/pure/ioselects/ioselectors_select.nim')
-rw-r--r-- | lib/pure/ioselects/ioselectors_select.nim | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/pure/ioselects/ioselectors_select.nim b/lib/pure/ioselects/ioselectors_select.nim index 7ed250307..cd6a72b44 100644 --- a/lib/pure/ioselects/ioselectors_select.nim +++ b/lib/pure/ioselects/ioselectors_select.nim @@ -99,6 +99,9 @@ proc newSelector*[T](): Selector[T] = result = Selector[T]() result.fds = newSeq[SelectorKey[T]](FD_SETSIZE) + for i in 0 ..< FD_SETSIZE: + result.fds[i].ident = InvalidIdent + IOFD_ZERO(addr result.rSet) IOFD_ZERO(addr result.wSet) IOFD_ZERO(addr result.eSet) @@ -195,7 +198,7 @@ proc setSelectKey[T](s: Selector[T], fd: SocketHandle, events: set[Event], var i = 0 let fdi = int(fd) while i < FD_SETSIZE: - if s.fds[i].ident == 0: + if s.fds[i].ident == InvalidIdent: var pkey = addr(s.fds[i]) pkey.ident = fdi pkey.events = events @@ -221,7 +224,7 @@ proc delKey[T](s: Selector[T], fd: SocketHandle) = var i = 0 while i < FD_SETSIZE: if s.fds[i].ident == fd.int: - s.fds[i].ident = 0 + s.fds[i].ident = InvalidIdent s.fds[i].events = {} s.fds[i].data = empty break @@ -335,7 +338,7 @@ proc selectInto*[T](s: Selector[T], timeout: int, var k = 0 while (i < FD_SETSIZE) and (k < count): - if s.fds[i].ident != 0: + if s.fds[i].ident != InvalidIdent: var flag = false var pkey = addr(s.fds[i]) var rkey = ReadyKey(fd: int(pkey.ident), events: {}) |