mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 07:17:58 +00:00
Create a central point for removal of work items completed by queued device drivers.
This commit is contained in:
parent
95b2020263
commit
e8e88beff1
10
cgminer.c
10
cgminer.c
@ -5614,6 +5614,16 @@ static void fill_queue(struct thr_info *mythr, struct cgpu_info *cgpu, struct de
|
||||
} while (!drv->queue_full(cgpu));
|
||||
}
|
||||
|
||||
/* This function should be used by queued device drivers when they're sure
|
||||
* the work struct is no longer in use. */
|
||||
void work_completed(struct cgpu_info *cgpu, struct work *work)
|
||||
{
|
||||
wr_lock(&cgpu->qlock);
|
||||
HASH_DEL(cgpu->queued_work, work);
|
||||
wr_unlock(&cgpu->qlock);
|
||||
free_work(work);
|
||||
}
|
||||
|
||||
/* This version of hash work is for devices that are fast enough to always
|
||||
* perform a full nonce range and need a queue to maintain the device busy.
|
||||
* Work creation and destruction is not done from within this function
|
||||
|
1
miner.h
1
miner.h
@ -1093,6 +1093,7 @@ struct modminer_fpga_state {
|
||||
|
||||
extern void get_datestamp(char *, struct timeval *);
|
||||
extern void submit_nonce(struct thr_info *thr, struct work *work, uint32_t nonce);
|
||||
extern void work_completed(struct cgpu_info *cgpu, struct work *work);
|
||||
extern void tailsprintf(char *f, const char *fmt, ...);
|
||||
extern void wlogprint(const char *f, ...);
|
||||
extern int curses_int(const char *query);
|
||||
|
Loading…
Reference in New Issue
Block a user