aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb/iopause_stamp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/iopause_stamp.c')
-rw-r--r--src/libstddjb/iopause_stamp.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/libstddjb/iopause_stamp.c b/src/libstddjb/iopause_stamp.c
index a2ac8fa..890909b 100644
--- a/src/libstddjb/iopause_stamp.c
+++ b/src/libstddjb/iopause_stamp.c
@@ -1,22 +1,17 @@
/* ISC license. */
#include <errno.h>
+
#include <skalibs/tai.h>
#include <skalibs/iopause.h>
int iopause_stamp (iopause_fd *x, unsigned int n, tain const *deadline, tain *stamp)
{
+ int e = errno ;
int r ;
- do
- {
- r = iopause(x, n, deadline, stamp) ;
- if (stamp)
- {
- int e = errno ;
- tain_now(stamp) ;
- errno = e ;
- }
- }
- while ((r < 0) && (errno == EINTR)) ;
+ do r = iopause(x, n, deadline, stamp) ;
+ while (r == -1 && errno == EINTR) ;
+ if (stamp) tain_now(stamp) ;
+ if (r >= 0) errno = e ;
return r ;
}