This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][BZ #14627] Make linux close errno to EINPROGRESS when interrupted in signal.
- From: David Miller <davem at davemloft dot net>
- To: dalias at aerifal dot cx
- Cc: hch at lst dot de, azanella at linux dot vnet dot ibm dot com, libc-alpha at sourceware dot org
- Date: Thu, 05 Dec 2013 15:50:09 -0500 (EST)
- Subject: Re: [RFC][BZ #14627] Make linux close errno to EINPROGRESS when interrupted in signal.
- Authentication-results: sourceware.org; auth=none
- References: <20131205175749 dot GL24286 at brightrain dot aerifal dot cx> <20131205195802 dot GA19289 at lst dot de> <20131205201126 dot GO24286 at brightrain dot aerifal dot cx>
From: Rich Felker <dalias@aerifal.cx>
Date: Thu, 5 Dec 2013 15:11:26 -0500
> If EINTR from close essentially doesn't show up in the wild on Linux,
> I think the proposed change in glibc to replace it with EINPROGRESS
> would essentially be just a safety against (dangerous!) double-close
> bugs in correct POSIX applications due to strange devices slipping an
> EINTR through. I'm still strongly in favor of adding it (or a
> replacement with 0/success).
At one time many years ago there was a path in the kernel that
returned an error from close and it broke so many things. Even emacs
crashed.
The widespread overwhelming belief is that close() is just going
to always succeed, and there is more harm than good from signalling
errors at all from that function.