On Fri, 11 Mar 2022 17:26:50 +0000 Chris Vine <vine24683...@gmail.com> wrote: > Notable procedures which it appears remain as non-suspendable are > get-bytevector-all, get-string-n, read, write and display, but to be > sure about the first two of those I would also need to read the source > again. A few years ago I had some test code to test which procedures > were suspendable and I will also have to see if I can find it again.
I have resurrected my old test code and I can confirm that get-bytevector-n, get-bytevector-n!, get-bytevector-some and get-bytevector-some! are now suspension safe in guile-2.2.6 and guile-3.0.8, but get-bytevector-all, get-string-n and get-string-n! remain unsafe. Interestingly the read procedure remains unsafe in guile-2.2.6, but seems to be safe in guile-3.0.8 even though I cannot see what in the code has changed. I have yet to re-equip my tests to test the write and display procedures, or to see what effect this has on http-get, http-put and the like. Chris