[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug #33996] 2.0.2: Crash related to ports and threads
From: |
Andy Wingo |
Subject: |
Re: [bug #33996] 2.0.2: Crash related to ports and threads |
Date: |
Thu, 10 Nov 2011 00:16:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
On Sun 21 Aug 2011 15:22, address@hidden (Ludovic Courtès) writes:
> Andy Wingo <address@hidden> 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/