[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Pipe and thread problem
From: |
Mario Domenech Goulart |
Subject: |
Re: [Chicken-users] Pipe and thread problem |
Date: |
Wed, 24 Oct 2012 09:44:37 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Hi Felix,
On Wed, 24 Oct 2012 08:04:37 -0400 (EDT) Felix <address@hidden> wrote:
> From: Aaron Patterson <address@hidden>
> Subject: [Chicken-users] Pipe and thread problem
> Date: Tue, 23 Oct 2012 14:30:57 -0700
>
>> Hi, I'm trying to simulate reading from a TTY that writes every two
>> seconds. I want to do this with a pipe and two threads, one thread
>> writes every N seconds, while the other reads any data available on the
>> pipe.
>>
>> Unfortunately, my code just hangs. After speaking with the fine people
>> in #chicken, it seems that this may be a bug. We played with different
>> calls to put the threads to sleep, and different functions to read data,
>> but they all ended up freezing at some point.
>
> The ports obtained from calls to "open-[input|output]-file*" use
> internally the "stream-port" class (ports on FILE* streams, in this
> case created via fdopen(3)). These are not thread-aware, AFAICT. Ports
> created for socket-fd's (tcp.scm) and processes (posixunix.scm, see
> specifically ##sys#custom-[input|output]-port") apparently do.
>From a user perspective (i.e., without knowing how things are
implemented by Chicken), how can we know what procedures can be used
with threads?
Wouldn't such a misuse of I/O operations in the presence of threads be
a possible cause of #858?
Best wishes.
Mario
--
http://parenteses.org/mario