fix win32 io for streams
parent
73f4de490a
commit
b0932edbb6
|
@ -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 ;
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
[
|
[
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
Loading…
Reference in New Issue