[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: interrupted system call when using named pipes on FreeBSD
From: |
Lionel Cons |
Subject: |
Re: interrupted system call when using named pipes on FreeBSD |
Date: |
Mon, 4 Feb 2013 13:30:10 +0100 |
On 30 January 2013 17:48, Chet Ramey <chet.ramey@case.edu> wrote:
>> a simple patch to workaround/fix the issue by Yuta SATOH:
>> --- bash-4.2/redir.c
>> +++ bash-4.2/redir.c
>> @@ -632,7 +632,9 @@
>> }
>> else
>> {
>> - fd = open (filename, flags, mode);
>> + do {
>> + fd = open (filename, flags, mode);
>> + } while ((fd < 0) && (errno == EINTR));
>> #if defined (AFS)
>> if ((fd < 0) && (errno == EACCES))
>> {
>>
>> but we're not sure if this is the route to take ? seems like if bash is
>> handling SIGCHLD, there's no avoiding this sort of check.
>
> It seems like implementations are buggy enough that bash needs to do
> something to work around them, but this isn't exactly it.
>
> The issue with the proposed patch is that it would make it impossible to
> interrupt an open using, say, ^C. There needs to be a check for signals
> in there somewhere. I'll fix it.
Question is whether such buggy platforms like Solaris should be
supported at all by bash. Oracle refuses to make such patches
available in/for the public, meaning that the average system will
suffer from this permanently.
Lionel
- Re: interrupted system call when using named pipes on FreeBSD,
Lionel Cons <=