From 87a3b073c985e91123109b1b78a90a98d4f3d694 Mon Sep 17 00:00:00 2001 From: Stelian Ionescu Date: Sat, 20 Dec 2008 23:21:25 +0100 Subject: [PATCH] Small fix in %WRITE-OCTETS-FROM-FOREIGN-MEMORY. --- io.streams/gray/gray-stream-methods.lisp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/io.streams/gray/gray-stream-methods.lisp b/io.streams/gray/gray-stream-methods.lisp index 8b70eaa..3a8e22e 100644 --- a/io.streams/gray/gray-stream-methods.lisp +++ b/io.streams/gray/gray-stream-methods.lisp @@ -152,15 +152,14 @@ (declare (type stream-buffer buf)) (let ((bytes-written 0)) (labels ((write-once () - (let ((num - (handler-case - (funcall write-fn fd (inc-pointer buf bytes-written) - (- nbytes bytes-written)) - (nix:epipe () - (return* (values bytes-written :hangup))) - (nix:ewouldblock () - (iomux:wait-until-fd-ready fd :output))))) - (incf bytes-written num))) + (handler-case + (funcall write-fn fd (inc-pointer buf bytes-written) + (- nbytes bytes-written)) + (nix:epipe () + (return* (values bytes-written :hangup))) + (nix:ewouldblock () + (iomux:wait-until-fd-ready fd :output nil t)) + (:no-error (nbytes) (incf bytes-written nbytes)))) (buffer-emptyp () (= bytes-written nbytes))) (loop :until (buffer-emptyp) :do (write-once) :finally (return* bytes-written))))) -- 2.11.4.GIT