1141cc406Sopenharmony_ci#include "../include/sane/config.h"
2141cc406Sopenharmony_ci
3141cc406Sopenharmony_ci#ifndef HAVE_SLEEP
4141cc406Sopenharmony_ci
5141cc406Sopenharmony_ci#ifdef HAVE_WINDOWS_H
6141cc406Sopenharmony_ci#include <windows.h>
7141cc406Sopenharmony_ci#endif
8141cc406Sopenharmony_ci
9141cc406Sopenharmony_ciunsigned int sleep(unsigned int seconds)
10141cc406Sopenharmony_ci{
11141cc406Sopenharmony_ci#ifdef HAVE_WINDOWS_H
12141cc406Sopenharmony_ci    Sleep(seconds*1000);
13141cc406Sopenharmony_ci    return 0;
14141cc406Sopenharmony_ci#else
15141cc406Sopenharmony_ci    int rc = 0;
16141cc406Sopenharmony_ci
17141cc406Sopenharmony_ci    /* WARNING: Not all platforms support usleep() for more than 1
18141cc406Sopenharmony_ci     * second. Assuming if they do not have POSIX sleep then they
19141cc406Sopenharmony_ci     * do not have POSIX usleep() either and are using our internal
20141cc406Sopenharmony_ci     * version which can support it. If it fails, need to add an OS
21141cc406Sopenharmony_ci     * specific replacement like Sleep for Windows.
22141cc406Sopenharmony_ci     */
23141cc406Sopenharmony_ci    if (usleep(seconds*1000000))
24141cc406Sopenharmony_ci	rc = 1;
25141cc406Sopenharmony_ci    return rc;
26141cc406Sopenharmony_ci#endif
27141cc406Sopenharmony_ci
28141cc406Sopenharmony_ci}
29141cc406Sopenharmony_ci
30141cc406Sopenharmony_ci#endif
31