Stefan Israelsson Tampe schreef op do 12-05-2022 om 15:25 [+0200]: > I did a take to make the soft-ports suspendable and here is an idea, > > http://itampe.com/suspendable-soft-ports.html > > Let me know if you are interested, I could refactor out these files > to a project of their own, but really something like this should be > in guile. +1 (for moving into Guile, though as a separate project would be sufficient for my use cases). I need something like this for BSD socket integration in Scheme-GNUnet (which uses Guile-Fibers and hence needs suspendable ports). There are other uses as well (see recent IRC). It would also solve (from (fibers)Barriers): Accidental continuation barriers are bugs, and the Guile developers have been working on removing them over the years. By now, most of the high-priority accidental barriers are gone. Those that are left include: [...] * R6RS custom binary port callbacks * Legacy "soft port" callbacks [...] Something that appears to be missing: integration with C. Does calling scm_get_u8 from C work (assuming that no actual suspension happens)? Likewise for scm_get_bytevector_n, scm_seek, ... Greetings, Maxime.