mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-22 20:44:19 +00:00
Provide an nusleep equivalent function to nmsleep.
This commit is contained in:
parent
7740ed839a
commit
d52ab244ee
23
util.c
23
util.c
@ -844,6 +844,29 @@ void nmsleep(unsigned int msecs)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Same for usecs */
|
||||||
|
void nusleep(unsigned int usecs)
|
||||||
|
{
|
||||||
|
struct timespec twait, tleft;
|
||||||
|
int ret;
|
||||||
|
ldiv_t d;
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
timeBeginPeriod(1);
|
||||||
|
#endif
|
||||||
|
d = ldiv(usecs, 1000000);
|
||||||
|
tleft.tv_sec = d.quot;
|
||||||
|
tleft.tv_nsec = d.rem * 1000;
|
||||||
|
do {
|
||||||
|
twait.tv_sec = tleft.tv_sec;
|
||||||
|
twait.tv_nsec = tleft.tv_nsec;
|
||||||
|
ret = nanosleep(&twait, &tleft);
|
||||||
|
} while (ret == -1 && errno == EINTR);
|
||||||
|
#ifdef WIN32
|
||||||
|
timeEndPeriod(1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* This is a cgminer gettimeofday wrapper. Since we always call gettimeofday
|
/* This is a cgminer gettimeofday wrapper. Since we always call gettimeofday
|
||||||
* with tz set to NULL, and windows' default resolution is only 15ms, this
|
* with tz set to NULL, and windows' default resolution is only 15ms, this
|
||||||
* gives us higher resolution times on windows. */
|
* gives us higher resolution times on windows. */
|
||||||
|
1
util.h
1
util.h
@ -58,6 +58,7 @@ int thr_info_create(struct thr_info *thr, pthread_attr_t *attr, void *(*start) (
|
|||||||
void thr_info_freeze(struct thr_info *thr);
|
void thr_info_freeze(struct thr_info *thr);
|
||||||
void thr_info_cancel(struct thr_info *thr);
|
void thr_info_cancel(struct thr_info *thr);
|
||||||
void nmsleep(unsigned int msecs);
|
void nmsleep(unsigned int msecs);
|
||||||
|
void nusleep(unsigned int usecs);
|
||||||
void cgtime(struct timeval *tv);
|
void cgtime(struct timeval *tv);
|
||||||
void subtime(struct timeval *a, struct timeval *b);
|
void subtime(struct timeval *a, struct timeval *b);
|
||||||
void addtime(struct timeval *a, struct timeval *b);
|
void addtime(struct timeval *a, struct timeval *b);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user