#include "wconfig.h"


#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif

#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif


#include <unistd.h>
#include <string.h>

#if defined(HAVE_SELECT)

#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif

void
wusleep(unsigned int microsecs)
{
    struct timeval tv;
    fd_set rd, wr, ex;
    FD_ZERO(&rd);
    FD_ZERO(&wr);
    FD_ZERO(&ex);
    tv.tv_sec = microsecs / 1000000u;
    tv.tv_usec = microsecs % 1000000u;
    select(1, &rd, &wr, &ex, &tv);
}

#else /* not HAVE_SELECT */

# ifdef HAVE_POLL

void
wusleep(unsigned int microsecs)
{
    poll((struct poll *) 0, (size_t) 0, microsecs/1000);
}

# else /* ! HAVE_POLL */

oops!

# endif /* !HAVE_POLL */
#endif /* !HAVE_SELECT */


syntax highlighted by Code2HTML, v. 0.9.1