From abc920dfbe0fc390c02b1e23f64092c11726174d Mon Sep 17 00:00:00 2001 From: lukem Date: Thu, 7 Jan 2021 12:02:52 +0000 Subject: progress: handle EINTR in writes. PR/55914 --- progress.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/progress.c b/progress.c index 2498bee..0c69538 100644 --- a/progress.c +++ b/progress.c @@ -1,4 +1,4 @@ -/* $NetBSD: progress.c,v 1.22 2020/04/25 11:12:39 simonb Exp $ */ +/* $NetBSD: progress.c,v 1.23 2021/01/07 12:02:52 lukem Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include #ifndef lint -__RCSID("$NetBSD: progress.c,v 1.22 2020/04/25 11:12:39 simonb Exp $"); +__RCSID("$NetBSD: progress.c,v 1.23 2021/01/07 12:02:52 lukem Exp $"); #endif /* not lint */ #include @@ -236,6 +236,10 @@ main(int argc, char *argv[]) for (off = 0; nr; nr -= nw, off += nw, bytes += nw) if ((nw = write(outpipe[1], fb_buf + off, (size_t) nr)) < 0) { + if (errno == EINTR) { + nw = 0; + continue; + } progressmeter(1); err(1, "writing %u bytes to output pipe", (unsigned) nr); -- cgit v1.2.3-56-ge451