On Wed, Jun 02, 2021 at 04:11:14PM -0400, Taylor Blau wrote:
Subject: [PATCH] compat: introduce git_fsync_with_restart()
Some platforms, like NonStop do not automatically restart fsync() when
interrupted by a signal, even when that signal is setup with SA_RESTART.
This can lead to test breakage, e.g., where "--progress" is used, thus
SIGALRM is sent often, and can interrupt an fsync() syscall.
Add a Makefile knob FSYNC_NEEDS_RESTART to replace fsync() with one that
gracefully handles getting EINTR.
Reported-by: Randall S. Becker <redacted>
Signed-off-by: Jeff King <redacted>
Probably Helped-by might be more appropriate. But regardless, I
definitely give my S-o-B for anything I contributed.
Makefile | 8 ++++++++
compat/fsync.c | 10 ++++++++++
git-compat-util.h | 6 ++++++
3 files changed, 24 insertions(+)
create mode 100644 compat/fsync.c
This looks as I'd expect. But after seeing Eric's response, we perhaps
want to do away with the knob entirely.
-Peff