From b48c051b1b0f6b519cf7404fc33aba454419fa56 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 24 Nov 2008 00:51:29 -0600 Subject: [PATCH] Fix Windows overlapped timeout code for microseconds --- basis/io/windows/nt/backend/backend.factor | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/basis/io/windows/nt/backend/backend.factor b/basis/io/windows/nt/backend/backend.factor index 73b77508b7..1431ff3d30 100644 --- a/basis/io/windows/nt/backend/backend.factor +++ b/basis/io/windows/nt/backend/backend.factor @@ -48,12 +48,12 @@ M: winnt add-completion ( win32-handle -- ) } cond ] with-timeout ; -:: wait-for-overlapped ( ms -- bytes-transferred overlapped error? ) +:: wait-for-overlapped ( us -- bytes-transferred overlapped error? ) master-completion-port get-global 0 [ ! bytes f ! key f [ ! overlapped - ms INFINITE or ! timeout + us 1000 /i INFINITE or ! timeout GetQueuedCompletionStatus zero? ] keep *void* ] keep *int spin ; @@ -61,7 +61,7 @@ M: winnt add-completion ( win32-handle -- ) : resume-callback ( result overlapped -- ) pending-overlapped get-global delete-at* drop resume-with ; -: handle-overlapped ( timeout -- ? ) +: handle-overlapped ( us -- ? ) wait-for-overlapped [ dup [ >r drop GetLastError 1array r> resume-callback t @@ -75,7 +75,7 @@ M: winnt add-completion ( win32-handle -- ) M: win32-handle cancel-operation [ check-disposed ] [ handle>> CancelIo drop ] bi ; -M: winnt io-multiplex ( ms -- ) +M: winnt io-multiplex ( us -- ) handle-overlapped [ 0 io-multiplex ] when ; M: winnt init-io ( -- )