summaryrefslogtreecommitdiff
path: root/src/libstddjb/fd_close.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/fd_close.c')
-rw-r--r--src/libstddjb/fd_close.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/libstddjb/fd_close.c b/src/libstddjb/fd_close.c
index cb52d4f..a3c7880 100644
--- a/src/libstddjb/fd_close.c
+++ b/src/libstddjb/fd_close.c
@@ -4,12 +4,9 @@
#include <errno.h>
#include <skalibs/djbunix.h>
-int fd_close (int fd)
+void fd_close (int fd)
{
- for (;;)
- {
- if (!close(fd) || errno == EINPROGRESS) break ;
- if (errno != EINTR) return -1 ;
- }
- return 0 ;
+ int e = errno ;
+ while (close(fd) < 0 && errno == EINTR) ;
+ errno = e ;
}