mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-22 20:44:19 +00:00
Go back to cloning available work under staged lock.
This commit is contained in:
parent
bb64799c84
commit
df7370d066
12
cgminer.c
12
cgminer.c
@ -2999,14 +2999,14 @@ static struct work *make_clone(struct work *work)
|
||||
|
||||
static void stage_work(struct work *work);
|
||||
|
||||
/* Called with stgd_lock held */
|
||||
static bool __clone_available(void)
|
||||
static bool clone_available(void)
|
||||
{
|
||||
struct work *work, *tmp;
|
||||
bool cloned = false;
|
||||
|
||||
mutex_lock(stgd_lock);
|
||||
if (!staged_rollable)
|
||||
goto out;
|
||||
goto out_unlock;
|
||||
|
||||
HASH_ITER(hh, staged_work, work, tmp) {
|
||||
if (can_roll(work) && should_roll(work)) {
|
||||
@ -3022,7 +3022,9 @@ static bool __clone_available(void)
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
out_unlock:
|
||||
mutex_unlock(stgd_lock);
|
||||
|
||||
return cloned;
|
||||
}
|
||||
|
||||
@ -6864,7 +6866,7 @@ retry:
|
||||
continue;
|
||||
}
|
||||
|
||||
if (__clone_available()) {
|
||||
if (clone_available()) {
|
||||
applog(LOG_DEBUG, "Cloned getwork work");
|
||||
free_work(work);
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user