mirror of
https://github.com/GOSTSec/sgminer
synced 2025-02-10 05:54:21 +00:00
Use only a trylock in flush queue to prevent deadlocks.
This commit is contained in:
parent
f4cf0939a2
commit
aa9938973e
@ -6614,7 +6614,13 @@ static void flush_queue(struct cgpu_info *cgpu)
|
|||||||
{
|
{
|
||||||
struct work *work = NULL;
|
struct work *work = NULL;
|
||||||
|
|
||||||
wr_lock(&cgpu->qlock);
|
if (unlikely(!cgpu))
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Use only a trylock in case we get into a deadlock with a queueing
|
||||||
|
* function holding the read lock when we're called. */
|
||||||
|
if (wr_trylock(&cgpu->qlock))
|
||||||
|
return;
|
||||||
work = cgpu->unqueued_work;
|
work = cgpu->unqueued_work;
|
||||||
cgpu->unqueued_work = NULL;
|
cgpu->unqueued_work = NULL;
|
||||||
wr_unlock(&cgpu->qlock);
|
wr_unlock(&cgpu->qlock);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user