From: espen Date: Wed, 20 Jun 2007 14:28:48 +0000 (+0000) Subject: Fixed problem cause by SB-UNIX:UNIX-FAST-SELECT returning NIL sometimes X-Git-Tag: clg-0-93~117 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/commitdiff_plain/6006b229c782b4494a28dac783990568529649cb Fixed problem cause by SB-UNIX:UNIX-FAST-SELECT returning NIL sometimes --- diff --git a/gtk/gtk.lisp b/gtk/gtk.lisp index d4cc2dd..49b00ed 100644 --- a/gtk/gtk.lisp +++ b/gtk/gtk.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gtk.lisp,v 1.74 2007/06/20 10:19:47 espen Exp $ +;; $Id: gtk.lisp,v 1.75 2007/06/20 14:28:48 espen Exp $ (in-package "GTK") @@ -88,12 +88,14 @@ (defun socket-status (socket seconds microseconds) (sb-unix:fd-zero read-fds) (sb-unix:fd-set fd read-fds) - (unless (zerop (sb-unix:unix-fast-select - (1+ fd) (sb-alien:addr read-fds) nil nil - seconds microseconds)) - (if (peek-char nil (car socket) nil) - :input - :eof))))) + (let ((num-fds-changed + (sb-unix:unix-fast-select + (1+ fd) (sb-alien:addr read-fds) nil nil + seconds microseconds))) + (unless (or (not num-fds-changed) (zerop num-fds-changed)) + (if (peek-char nil (car socket) nil) + :input + :eof)))))) (defun %init-async-event-handling (display) (let ((style #?(or (featurep :cmu) (sbcl< 1 0 6)) :fd-handler