From: Arseny S. <am...@ic...> - 2002-05-27 12:08:11
|
Hello Todd, Monday, May 27, 2002, 3:08:26 PM, you wrote: >> Todd> You've misunderstood what I want. I have no problem with >> Todd> (socket-connect ... :timeout N) signaling an error if the timeout >> Todd> expires, and I agree that's the right thing. But what I want is >> Todd> something different, namely some form of socket-connect which doesn't >> Todd> block, even in the success cases. >> >> By analogy with socket-wait it can be (socket-connect .. :timeout 0) >> (but socket-wait has &optional, not &keyword timeout). Todd> Correct me if I'm wrong, but using socket-connect with :timeout 0 will Todd> (virtually) always signal an error, since you'll never get connected Todd> instantly. (Perhaps you would on loopback.) That is not what I want. Yes, you're right. But socket-wait doesn't return an error - it polls (and it's convenient). What if we'll have analog of socket-wait but for client side - call it, say connect-wait or wait-connect or client-wait... It will turn blocking off, starts connecting (if connection wasn't started yet), waits checking whether connection ready and returns nil or t depending on result. Then socket-connect (when called) checks the status, turns on the blocking and signals an error or returns stream in full harmony with Lisp spirit balancing Client and Server sides of Connection... How do you like it ? -- Best regards, Arseny mailto:am...@ic... |