mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 15:27:53 +00:00
Use the reentrant cgsleep functions within the avalon_send_tasks function.
This commit is contained in:
parent
8114473228
commit
c988587b45
@ -1013,7 +1013,7 @@ static void *avalon_send_tasks(void *userdata)
|
|||||||
|
|
||||||
while (likely(!avalon->shutdown)) {
|
while (likely(!avalon->shutdown)) {
|
||||||
int start_count, end_count, i, j, ret;
|
int start_count, end_count, i, j, ret;
|
||||||
struct timespec ts_start, ts_end;
|
struct timespec ts_start;
|
||||||
struct avalon_task at;
|
struct avalon_task at;
|
||||||
bool idled = false;
|
bool idled = false;
|
||||||
int64_t us_timeout;
|
int64_t us_timeout;
|
||||||
@ -1025,9 +1025,7 @@ static void *avalon_send_tasks(void *userdata)
|
|||||||
|
|
||||||
/* A full nonce range */
|
/* A full nonce range */
|
||||||
us_timeout = 0x100000000ll / info->asic_count / info->frequency;
|
us_timeout = 0x100000000ll / info->asic_count / info->frequency;
|
||||||
us_to_timespec(&ts_end, us_timeout);
|
cgsleep_prepare_r(&ts_start);
|
||||||
clock_gettime(CLOCK_MONOTONIC, &ts_start);
|
|
||||||
timeraddspec(&ts_end, &ts_start);
|
|
||||||
|
|
||||||
mutex_lock(&info->qlock);
|
mutex_lock(&info->qlock);
|
||||||
start_count = avalon->work_array * avalon_get_work_count;
|
start_count = avalon->work_array * avalon_get_work_count;
|
||||||
@ -1085,9 +1083,7 @@ static void *avalon_send_tasks(void *userdata)
|
|||||||
* at the current frequency using the clock_nanosleep function
|
* at the current frequency using the clock_nanosleep function
|
||||||
* timed from before we started loading new work so it will
|
* timed from before we started loading new work so it will
|
||||||
* fall short of the full duration. */
|
* fall short of the full duration. */
|
||||||
do {
|
cgsleep_us_r(&ts_start, us_timeout);
|
||||||
ret = clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &ts_end, NULL);
|
|
||||||
} while (ret == EINTR);
|
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user