Use usleep() for msleep() if it is available.

This commit is contained in:
Wayne Davison
2014-11-27 11:57:35 -08:00
parent 6128f56694
commit 5546dab329
3 changed files with 10 additions and 4 deletions

4
NEWS
View File

@@ -9,7 +9,9 @@ Changes since 3.1.1:
ENHANCEMENTS:
- Added "(DRY RUN)" info to the --debug=exit output line.
- Added a few extra long options to rrsync script, which will make BackupPC happier.
- Use usleep() for our msleep() function if it is available.
- Added a few extra long-option names to rrsync script, which will make
BackupPC happier.
DEVELOPER RELATED:

View File

@@ -602,7 +602,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \
seteuid strerror putenv iconv_open locale_charset nl_langinfo getxattr \
extattr_get_link sigaction sigprocmask setattrlist getgrouplist \
initgroups utimensat posix_fallocate attropen setvbuf)
initgroups utimensat posix_fallocate attropen setvbuf usleep)
dnl cygwin iconv.h defines iconv_open as libiconv_open
if test x"$ac_cv_func_iconv_open" != x"yes"; then

View File

@@ -35,6 +35,9 @@ extern int checksum_len;
**/
int msleep(int t)
{
#ifdef HAVE_USLEEP
usleep(t*1000);
#else
int tdiff = 0;
struct timeval tval, t1, t2;
@@ -48,11 +51,12 @@ int msleep(int t)
select(0,NULL,NULL, NULL, &tval);
gettimeofday(&t2, NULL);
if (t2.tv_sec < t1.tv_sec)
t1 = t2; /* Time went backwards, so start over. */
tdiff = (t2.tv_sec - t1.tv_sec)*1000 +
(t2.tv_usec - t1.tv_usec)/1000;
if (tdiff < 0)
t1 = t2; /* Time went backwards, so start over. */
}
#endif
return True;
}