aboutsummaryrefslogtreecommitdiffstats
path: root/src/assuan-io.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2008-03-21 14:18:22 +0000
committerMarcus Brinkmann <[email protected]>2008-03-21 14:18:22 +0000
commit3de69e5fece18cf9d0b417e34c600d0261bc4728 (patch)
treea8b6332b3e6e4ffcaa5f3c9212a10b78fef1e046 /src/assuan-io.c
parent2008-03-21 Marcus Brinkmann <[email protected]> (diff)
downloadlibassuan-3de69e5fece18cf9d0b417e34c600d0261bc4728.tar.gz
libassuan-3de69e5fece18cf9d0b417e34c600d0261bc4728.zip
2008-03-21 Marcus Brinkmann <[email protected]>
* assuan-defs.h (_assuan_usleep): New prototype. * assuan-io.c (_assuan_usleep): New function. * assuan-io-pth.c (_assuan_usleep): New function. * mkerrors: Do not incude <windows.h>, but assuan-defs.h. (_assuan_error_is_eagain): Call _assuan_usleep.
Diffstat (limited to 'src/assuan-io.c')
-rw-r--r--src/assuan-io.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/assuan-io.c b/src/assuan-io.c
index 1ff4ecb..17e8b46 100644
--- a/src/assuan-io.c
+++ b/src/assuan-io.c
@@ -1,5 +1,5 @@
/* assuan-io.c - Wraps the read and write functions.
- * Copyright (C) 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
+ * Copyright (C) 2002, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
*
* This file is part of Assuan.
*
@@ -213,3 +213,25 @@ _assuan_simple_recvmsg (assuan_context_t ctx, struct msghdr *msg)
return ret;
#endif
}
+
+
+void
+_assuan_usleep (unsigned int usec)
+{
+#ifdef HAVE_W32_SYSTEM
+ /* FIXME. */
+ Sleep (usec / 1000);
+#else
+ struct timespec req;
+ struct timespec rem;
+
+ if (usec == 0)
+ return;
+
+ req.tv_sec = 0;
+ req.tv_nsec = usec * 1000;
+
+ while (nanosleep (&req, &rem) < 0 && errno == EINTR)
+ req = rem;
+#endif
+}