Fix 32bit architecture problems with SelectEvent.

This commit is contained in:
cheatfate 2016-08-31 10:30:25 +03:00
commit b75ddf5ba2
3 changed files with 5 additions and 5 deletions

View file

@ -407,8 +407,8 @@ proc selectInto*[T](s: Selector[T], timeout: int,
inc(i) inc(i)
continue continue
elif Event.User in skey.events: elif Event.User in skey.events:
var data: uint = 0 var data: uint64 = 0
if posix.read(fdi.cint, addr data, sizeof(uint)) != sizeof(uint): if posix.read(fdi.cint, addr data, sizeof(uint64)) != sizeof(uint64):
let err = osLastError() let err = osLastError()
if err == OSErrorCode(EAGAIN): if err == OSErrorCode(EAGAIN):
inc(i) inc(i)

View file

@ -245,7 +245,7 @@ proc selectInto*[T](s: Selector[T], timeout: int,
skey.key.events.incl(Event.Read) skey.key.events.incl(Event.Read)
if Event.User in skey.events: if Event.User in skey.events:
var data: uint64 = 0 var data: uint64 = 0
if posix.read(fd, addr data, sizeof(int)) != sizeof(int): if posix.read(fd, addr data, sizeof(uint64)) != sizeof(uint64):
let err = osLastError() let err = osLastError()
if err != OSErrorCode(EAGAIN): if err != OSErrorCode(EAGAIN):
raiseOSError(osLastError()) raiseOSError(osLastError())

View file

@ -155,9 +155,9 @@ when defined(windows):
result.wsock = wsock result.wsock = wsock
proc setEvent*(ev: SelectEvent) = proc setEvent*(ev: SelectEvent) =
var data: int = 1 var data: uint64 = 1
if winlean.send(ev.wsock, cast[pointer](addr data), if winlean.send(ev.wsock, cast[pointer](addr data),
cint(sizeof(int)), 0) != sizeof(int): cint(sizeof(uint64)), 0) != sizeof(uint64):
raiseOSError(osLastError()) raiseOSError(osLastError())
proc close*(ev: SelectEvent) = proc close*(ev: SelectEvent) =