diff --git a/util.c b/util.c index 56f53eafd66..38ed74fbcb5 100644 --- a/util.c +++ b/util.c @@ -97,6 +97,14 @@ int close_nointr(int fd) { } } +void close_nointr_nofail(int fd) { + + /* like close_nointr() but cannot fail, and guarantees errno + * is unchanged */ + + assert_se(close_nointr(fd) == 0); +} + int parse_boolean(const char *v) { assert(v); diff --git a/util.h b/util.h index 9aceaef47fd..c3d3aad7b9a 100644 --- a/util.h +++ b/util.h @@ -61,6 +61,7 @@ bool endswith(const char *s, const char *postfix); bool startswith(const char *s, const char *prefix); int close_nointr(int fd); +void close_nointr_nofail(int fd); int parse_boolean(const char *v);