]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/io/backend/unix/multiplexers/select/select.factor
use radix literals
[factor.git] / basis / io / backend / unix / multiplexers / select / select.factor
index f2d1a3a3b78c3cf7a22f5048c3a1e26591cb0741..09fd5840c2a0b0c531f9176141a1eda15c180a37 100644 (file)
@@ -1,8 +1,9 @@
 ! Copyright (C) 2004, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.c-types kernel bit-arrays sequences assocs unix
-math namespaces accessors math.order locals unix.time fry
-io.ports io.backend.unix io.backend.unix.multiplexers ;
+USING: alien.data kernel bit-arrays sequences assocs math
+namespaces accessors math.order locals fry io.ports
+io.backend.unix io.backend.unix.multiplexers unix unix.ffi
+unix.time layouts ;
 IN: io.backend.unix.multiplexers.select
 
 TUPLE: select-mx < mx read-fdset write-fdset ;
@@ -11,7 +12,9 @@ TUPLE: select-mx < mx read-fdset write-fdset ;
 ! FD_SET to be an array of cells, so we have to account for
 ! byte order differences on big endian platforms
 : munge ( i -- i' )
-    little-endian? [ BIN: 11000 bitxor ] unless ; inline
+    little-endian? [
+      cell 4 = [ 0b11000 ] [ 0b111000 ] if
+      bitxor ] unless ; inline
 
 : <select-mx> ( -- mx )
     select-mx new-mx
@@ -50,7 +53,7 @@ TUPLE: select-mx < mx read-fdset write-fdset ;
 
 M:: select-mx wait-for-events ( nanos mx -- )
     mx
-    [ init-fdsets nanos 1000 /i dup [ make-timeval ] when select multiplexer-error drop ]
+    [ init-fdsets nanos dup [ 1000 /i make-timeval ] when select multiplexer-error drop ]
     [ [ read-fdset/tasks ] keep [ input-available ] check-fdset ]
     [ [ write-fdset/tasks ] keep [ output-available ] check-fdset ]
     tri ;