#include "db_config.h"
#ifndef lint
static const char revid[] = "$Id: os_sleep.c,v 1.1.1.1 2003/02/15 04:56:09 zarzycki Exp $";
#endif
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_VXWORKS
#include <sys/times.h>
#include <time.h>
#include <selectLib.h>
#else
#if TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#else
#if HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#include <time.h>
#endif
#endif
#endif
#include <string.h>
#include <unistd.h>
#endif
#include "db_int.h"
int
__os_sleep(dbenv, secs, usecs)
DB_ENV *dbenv;
u_long secs, usecs;
{
struct timeval t;
int ret;
for (; usecs >= 1000000; usecs -= 1000000)
++secs;
if (DB_GLOBAL(j_sleep) != NULL)
return (DB_GLOBAL(j_sleep)(secs, usecs));
t.tv_sec = secs;
t.tv_usec = usecs;
do {
ret = select(0, NULL, NULL, NULL, &t) == -1 ?
__os_get_errno() : 0;
} while (ret == EINTR);
if (ret != 0)
__db_err(dbenv, "select: %s", strerror(ret));
return (ret);
}