]> gitweb.factorcode.org Git - factor.git/commitdiff
io.files.windows: implement non-blocking (wait-to-read/write)
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 19 May 2023 22:12:18 +0000 (15:12 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 19 May 2023 22:12:18 +0000 (15:12 -0700)
basis/io/files/windows/windows.factor

index 275b4b85cc39faeea2d1d5ed943f92e1f38cd383..efc4eb1501f6d113d877a48367ac8b2b1adb8855 100644 (file)
@@ -201,10 +201,12 @@ M: object refill
     [ drop [ wait-for-file ] [ finish-read ] bi ] 2bi f ;
 
 M: windows (wait-to-write)
-    [ dup handle>> drain ] with-destructors drop ;
+    dup dup handle>> drain
+    [ dupd wait-for-port (wait-to-write) ] [ drop ] if* ;
 
 M: windows (wait-to-read)
-    [ dup handle>> refill ] with-destructors drop ;
+    dup dup handle>> refill
+    [ dupd wait-for-port (wait-to-read) ] [ drop ] if* ;
 
 : make-fd-set ( socket -- fd_set )
     fd_set new swap 1array void* >c-array >>fd_array 1 >>fd_count ;