On Thu, 30 Jun 2016 08:42:06 +0200 Peter Bex <[email protected]> wrote: > On Wed, Jun 29, 2016 at 07:26:48PM -0600, Robert Smiley wrote: > > Hopefully this library will make it easier to read from and write > > to any file descriptor without leaving applications hanging, since > > all srfi-18 threads block when i/o is performed on ports other than > > tcp sockets. > > Hello Robert, > > Can you elaborate on that? CHICKEN marks all file descriptors it > opens as nonblocking, and most eggs attempt to do so too, if > possible. The core system comes with a thread scheduler which > automatically puts threads to sleep when they're reading from or > writing to an fd that isn't ready. So, the system is supposed to do > automatically what you're exposing here manually. If it doesn't, > that would be considered a bug.
Then consider it a bug. Only sockets from the tcp unit operate in that way, up to chicken-4.10 at least. For other descriptors you have to use chicken's srfi-18 extension, namely thread-wait-for-i/o!. Having said that, this egg (so far as I could understand it because there were some missing reader-token procedures) seems to involve looping on non-blocking descriptors in a busy wait for a read request to be fulfilled, which doesn't seem the best idea. But maybe I didn't spot the code which yields on EAGAIN. Chris _______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
