diff --git a/set-timeouts.lisp b/set-timeouts.lisp --- a/set-timeouts.lisp +++ b/set-timeouts.lisp @@ -41,7 +41,7 @@ set." (declare (ignorable usocket read-timeout write-timeout)) ;; add other Lisps here if necessary - #+(or :sbcl :cmu) + #+(or :sbcl :cmu :abcl) (unless (eql read-timeout write-timeout) (parameter-error "Read and write timeouts for socket must be equal.")) #+:clisp @@ -65,6 +65,11 @@ #+:cmu (setf (lisp::fd-stream-timeout (usocket:socket-stream usocket)) (coerce read-timeout 'integer)) - #-(or :clisp :allegro :openmcl :sbcl :lispworks :cmu) + #+:abcl + (when read-timeout + (java:jcall (java:jmethod "java.net.Socket" "setSoTimeout" "int") + (usocket:socket usocket) + (* 1000 read-timeout))) + #-(or :clisp :allegro :openmcl :sbcl :lispworks :cmu :abcl) (not-implemented 'set-timeouts))