Hi, usocket
Just found a bug on 0.4.x branch, on LispWorks (non-win32 version).
The WAIT-FOR-INPUT-INTERNAL function has a TRUNCATE operation on TIMEOUT:
(defun wait-for-input-internal (wait-list &key timeout) (with-mapped-conditions () ;; unfortunately, it's impossible to share code between ;; non-win32 and win32 platforms... ;; Can we have a sane -pref. complete [UDP!?]- API next time, please? (dolist (x (wait-list-waiters wait-list)) (mp:notice-fd (os-socket-handle x))) (mp:process-wait-with-timeout "Waiting for a socket to become active" (truncate timeout) ;; IT'S HERE!!!!!!!!!!!!!!!!!!!!!!!!! #'(lambda (socks) (let (rv) (dolist (x socks rv) (when (usocket-listen x) (setf (state x) :READ rv t))))) (wait-list-waiters wait-list)) (dolist (x (wait-list-waiters wait-list)) (mp:unnotice-fd (os-socket-handle x))) wait-list)))
So if I call WAIT-FOR-INPUT on a usocket instance with no TIMEOUT keyword supply, (TRUNCATE NIL) will be called, and error happens. How to fix this issue to make sure I can just wait "infinitely" on a usocket?
Regards,
Chun Tian (binghe)