diff options
author | Marcus Brinkmann <[email protected]> | 2008-03-21 14:18:22 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2008-03-21 14:18:22 +0000 |
commit | 3de69e5fece18cf9d0b417e34c600d0261bc4728 (patch) | |
tree | a8b6332b3e6e4ffcaa5f3c9212a10b78fef1e046 /src/assuan-io.c | |
parent | 2008-03-21 Marcus Brinkmann <[email protected]> (diff) | |
download | libassuan-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.c | 24 |
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 +} |