Hi Konrad, > train. The task and *Run mechanism (if used with enough care) give us > non blocking reads. > > But the underlying select function also provides non blocking writes. > so that you can dely trying to write to a socket until it is ready for > more data.
I would say that select (in C) and task and *Run (in picolisp) do not have anything to do with blocking i/o. It has to do something with the concept of asynchronous. In other words, when the process does not have anything to do, it goes to sleep by calling select and when there is some event on the registered file descriptors (e.g. read or write is possible), the process is woken up. Whether i/o is blocking or not is a property of the file/socket and i/o functions. So what gives you non-blocking reads and writes is setting the file to non-blocking mode and then handling "partial" i/o data in a specific way. Cheers, Tomas -- UNSUBSCRIBE: mailto:[EMAIL PROTECTED]