On Sun 21 Aug 2011 15:22, l...@gnu.org (Ludovic Courtès) writes: > Andy Wingo <wi...@pobox.com> skribis: > >> Oh dear, this is a nasty one. The issue is that Guile's ports are not >> threadsafe. I hadn't thought about this one... >> >> I am adding guile-devel to the Cc for input. Any fix to this will be >> pretty big, I think. I think that the right fix here is probably what >> Glibc does; see `info libc "Streams and Threads"` for the full details. > > Indeed, it would probably need per-port mutexes, making I/O primitives > thread-safe by default, and perhaps providing unlocked variants like > libc does.
I did this in master, but something was going wrong so I stubbed it out for the time being. But we are almost there. > Putting our fat mutexes on a diet seems like a prerequisite... I would think we can use normal mutexes, no? OTOH making dynamic-wind and scm_dynwind_* not cons would be really nice. Andy -- http://wingolog.org/