From f151a448c69d88b686fb7d859cca9498a050c305 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 15 May 2008 05:50:50 -0500 Subject: [PATCH] Simplify error handling logic --- extra/io/ports/ports.factor | 3 +-- extra/io/unix/backend/backend.factor | 7 +------ extra/io/windows/nt/sockets/sockets.factor | 23 +++++++++------------- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/extra/io/ports/ports.factor b/extra/io/ports/ports.factor index 56455d7711..96492d2f93 100755 --- a/extra/io/ports/ports.factor +++ b/extra/io/ports/ports.factor @@ -113,8 +113,7 @@ HOOK: (wait-to-write) io-backend ( port -- ) dup buffer>> buffer-empty? [ drop ] [ (wait-to-write) ] if ; M: output-port stream-flush ( port -- ) - dup check-disposed - [ flush-port ] [ pending-error ] bi ; + [ check-disposed ] [ flush-port ] bi ; M: output-port dispose* [ flush-port ] [ call-next-method ] bi ; diff --git a/extra/io/unix/backend/backend.factor b/extra/io/unix/backend/backend.factor index df5669d9aa..f4a3080dd9 100644 --- a/extra/io/unix/backend/backend.factor +++ b/extra/io/unix/backend/backend.factor @@ -48,11 +48,6 @@ M: mx remove-output-callbacks writes>> delete-at* drop ; GENERIC: wait-for-events ( ms mx -- ) -TUPLE: unix-io-error error port ; - -: report-error ( error port -- ) - tuck unix-io-error boa >>error drop ; - : input-available ( fd mx -- ) remove-input-callbacks [ resume ] each ; @@ -64,7 +59,7 @@ TUPLE: io-timeout ; M: io-timeout summary drop "I/O operation timed out" ; M: unix cancel-io ( port -- ) - io-timeout new over report-error + io-timeout new >>error handle>> handle-fd mx get-global [ input-available ] [ output-available ] 2bi ; diff --git a/extra/io/windows/nt/sockets/sockets.factor b/extra/io/windows/nt/sockets/sockets.factor index 75a08a02c4..fab50ecdd6 100755 --- a/extra/io/windows/nt/sockets/sockets.factor +++ b/extra/io/windows/nt/sockets/sockets.factor @@ -86,12 +86,10 @@ M: object (accept) ( server addr -- handle ) [ [ - { - [ call-AcceptEx ] - [ wait-for-socket drop ] - [ sAcceptSocket*>> opened-socket ] - [ port>> pending-error ] - } cleave + [ call-AcceptEx ] + [ wait-for-socket drop ] + [ sAcceptSocket*>> opened-socket ] + tri ] curry with-timeout ] with-destructors ; @@ -126,12 +124,10 @@ TUPLE: WSARecvFrom-args port M: winnt (receive) ( datagram -- packet addrspec ) [ - { - [ call-WSARecvFrom ] - [ wait-for-socket ] - [ port>> pending-error ] - [ parse-WSARecvFrom ] - } cleave + [ call-WSARecvFrom ] + [ wait-for-socket ] + [ parse-WSARecvFrom ] + tri ] with-destructors ; TUPLE: WSASendTo-args port @@ -166,6 +162,5 @@ M: winnt (send) ( packet addrspec datagram -- ) [ call-WSASendTo ] [ wait-for-socket drop ] - [ port>> pending-error ] - tri + bi ] with-destructors ;