summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorcheatfate <ka@hardcore.kiev.ua>2016-08-31 10:30:25 +0300
committercheatfate <ka@hardcore.kiev.ua>2016-08-31 10:30:25 +0300
commitb75ddf5ba22f2c09e0ca86d2f06c964ec11f9219 (patch)
tree2882e46057d553f33bb1170f3dd7e0820f7dd148
parent283f8e9c8cb1ca1efc2d8c7c8a85a9cc86f579d0 (diff)
downloadNim-b75ddf5ba22f2c09e0ca86d2f06c964ec11f9219.tar.gz
Fix 32bit architecture problems with SelectEvent.
-rw-r--r--lib/pure/ioselects/ioselectors_epoll.nim4
-rw-r--r--lib/pure/ioselects/ioselectors_poll.nim2
-rw-r--r--lib/pure/ioselects/ioselectors_select.nim4
3 files changed, 5 insertions, 5 deletions
diff --git a/lib/pure/ioselects/ioselectors_epoll.nim b/lib/pure/ioselects/ioselectors_epoll.nim
index 92b2cdc07..4bc6e9d51 100644
--- a/lib/pure/ioselects/ioselectors_epoll.nim
+++ b/lib/pure/ioselects/ioselectors_epoll.nim
@@ -407,8 +407,8 @@ proc selectInto*[T](s: Selector[T], timeout: int,
             inc(i)
             continue
         elif Event.User in skey.events:
-          var data: uint = 0
-          if posix.read(fdi.cint, addr data, sizeof(uint)) != sizeof(uint):
+          var data: uint64 = 0
+          if posix.read(fdi.cint, addr data, sizeof(uint64)) != sizeof(uint64):
             let err = osLastError()
             if err == OSErrorCode(EAGAIN):
               inc(i)
diff --git a/lib/pure/ioselects/ioselectors_poll.nim b/lib/pure/ioselects/ioselectors_poll.nim
index d2a0a1273..56be35c70 100644
--- a/lib/pure/ioselects/ioselectors_poll.nim
+++ b/lib/pure/ioselects/ioselectors_poll.nim
@@ -245,7 +245,7 @@ proc selectInto*[T](s: Selector[T], timeout: int,
             skey.key.events.incl(Event.Read)
             if Event.User in skey.events:
               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()
                 if err != OSErrorCode(EAGAIN):
                   raiseOSError(osLastError())
diff --git a/lib/pure/ioselects/ioselectors_select.nim b/lib/pure/ioselects/ioselectors_select.nim
index f8099f9a0..ddb70b507 100644
--- a/lib/pure/ioselects/ioselectors_select.nim
+++ b/lib/pure/ioselects/ioselectors_select.nim
@@ -155,9 +155,9 @@ when defined(windows):
     result.wsock = wsock
 
   proc setEvent*(ev: SelectEvent) =
-    var data: int = 1
+    var data: uint64 = 1
     if winlean.send(ev.wsock, cast[pointer](addr data),
-                    cint(sizeof(int)), 0) != sizeof(int):
+                    cint(sizeof(uint64)), 0) != sizeof(uint64):
       raiseOSError(osLastError())
 
   proc close*(ev: SelectEvent) =