From 95aaf32373dab3bfa89e9ed2f4eec53d5dd5d53f Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 16 May 2008 00:57:52 -0500 Subject: [PATCH] Fix conflict --- extra/io/unix/sockets/sockets.factor | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/extra/io/unix/sockets/sockets.factor b/extra/io/unix/sockets/sockets.factor index 0cfead0483..d4059c102a 100755 --- a/extra/io/unix/sockets/sockets.factor +++ b/extra/io/unix/sockets/sockets.factor @@ -70,18 +70,20 @@ M: object (server) ( addrspec -- handle ) dup handle-fd 10 listen io-error ] with-destructors ; -: do-accept ( server addrspec -- fd ) - [ handle>> handle-fd ] [ empty-sockaddr/size ] bi* accept ; inline +: do-accept ( server addrspec -- fd sockaddr ) + [ handle>> handle-fd ] [ empty-sockaddr/size ] bi* + [ accept ] 2keep drop ; inline -M:: object (accept) ( server addrspec -- fd sockaddr ) - server addrspec do-accept +M: object (accept) ( server addrspec -- fd sockaddr ) + 2dup do-accept { - { [ dup 0 >= ] [ dup addrspec (get-remote-sockaddr) ] } - { [ err_no EINTR = ] [ drop (accept) ] } + { [ over 0 >= ] [ >r 2nip r> ] } + { [ err_no EINTR = ] [ 2drop (accept) ] } { [ err_no EAGAIN = ] [ - drop - server +input+ wait-for-port - server addrspec (accept) + 2drop + [ drop +input+ wait-for-port ] + [ (accept) ] + 2bi ] } [ (io-error) ] } cond ;