fix win32 io for streams

erg 2006-09-09 22:34:39 +00:00
parent 73f4de490a
commit b0932edbb6
3 changed files with 1 additions and 5 deletions

View File

@ -16,7 +16,6 @@ TUPLE: io-callback overlapped quotation stream ;
997 997
] member? ; ] member? ;
USE: prettyprint
: handle-io-error ( -- ) : handle-io-error ( -- )
GetLastError expected-error? [ win32-throw-error ] unless ; GetLastError expected-error? [ win32-throw-error ] unless ;

View File

@ -70,7 +70,6 @@ M: win32-client-stream client-stream-port ( win32-client-stream -- port )
IN: io IN: io
USE: interpreter
SYMBOL: serv SYMBOL: serv
: accept ( server -- client ) : accept ( server -- client )
[ [

View File

@ -4,13 +4,11 @@ IN: win32-stream
USING: alien errors generic hashtables io-internals kernel USING: alien errors generic hashtables io-internals kernel
kernel-internals math namespaces prettyprint sequences kernel-internals math namespaces prettyprint sequences
io strings threads win32-api win32-io-internals ; io strings threads win32-api win32-io-internals ;
USE: interpreter
TUPLE: win32-stream handle timeout cutoff fileptr file-size ; TUPLE: win32-stream handle timeout cutoff fileptr file-size ;
TUPLE: win32-stream-reader in ; TUPLE: win32-stream-reader in ;
TUPLE: win32-stream-writer out ; TUPLE: win32-stream-writer out ;
TUPLE: win32-duplex-stream ; TUPLE: win32-duplex-stream ;
SYMBOL: stream
: win32-buffer-size 16384 ; inline : win32-buffer-size 16384 ; inline
@ -45,7 +43,7 @@ SYMBOL: stream
over win32-stream-reader-in over win32-stream-reader-in
[ buffer@ ] keep buffer-capacity [ buffer@ ] keep buffer-capacity
>r pick r> swap dup win32-stream-file-size >r pick r> swap dup win32-stream-file-size
[ swap win32-stream-fileptr - min ] when* [ swap win32-stream-fileptr - min ] [ drop ] if*
f r> ReadFile zero? [ handle-io-error ] when stop f r> ReadFile zero? [ handle-io-error ] when stop
] callcc1 [ over win32-stream-reader-in n>buffer ] keep ] callcc1 [ over win32-stream-reader-in n>buffer ] keep
swap update-file-pointer ; swap update-file-pointer ;