1
0
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:
Con Kolivas 2013-02-16 12:28:50 +11:00
parent 95b2020263
commit e8e88beff1
2 changed files with 11 additions and 0 deletions

View File

@ -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

View File

@ -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);