On 2/20/24 11:37 AM, Grisha Levit wrote:
On Tue, Feb 20, 2024 at 9:18 AM Chet Ramey <chet.ra...@case.edu> wrote:

Well, depending on when the terminal emulator sends the SIGWINCH, this is
probably a bug in Dropbox or the File Provider code. Bash installs its
SIGWINCH handler with SA_RESTART, and the default disposition is to
discard, so even if a SIGWINCH arrives before bash installs its handler it
should not interrupt open().

I suppose we'll have to work around it.

sigaction(2) says:

     The affected system calls include open(2), read(2), write(2),
     sendto(2), recvfrom(2), sendmsg(2) and recvmsg(2) on a communications
     channel or a slow device (such as a terminal, but not a regular file)

so I guess a SIGWINCH during the open(2) for ~/.bash_profile, etc. can
still get interrupted.

I went by POSIX:

"This flag affects the behavior of interruptible functions; that is, those
specified to fail with errno set to [EINTR]. If set, and a function
specified as interruptible is interrupted by this signal, the function shall restart and shall not fail with [EINTR] unless otherwise specified."

and POSIX does not otherwise specify for open. But I guess the macOS man
page falls under the "otherwise specified" part.

Still have to work around it.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/


Reply via email to