mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 15:27:53 +00:00
Execute driver shutdown sequence during kill_work.
This commit is contained in:
parent
7c645ffda9
commit
6972ec62a7
10
cgminer.c
10
cgminer.c
@ -2813,6 +2813,12 @@ static void __kill_work(void)
|
|||||||
pthread_t *pth = NULL;
|
pthread_t *pth = NULL;
|
||||||
|
|
||||||
thr = get_thread(i);
|
thr = get_thread(i);
|
||||||
|
if (thr) {
|
||||||
|
struct device_drv *drv = thr->cgpu->drv;
|
||||||
|
|
||||||
|
drv->thread_shutdown(thr);
|
||||||
|
}
|
||||||
|
|
||||||
if (thr && PTH(thr) != 0L)
|
if (thr && PTH(thr) != 0L)
|
||||||
pth = &thr->pth;
|
pth = &thr->pth;
|
||||||
thr_info_cancel(thr);
|
thr_info_cancel(thr);
|
||||||
@ -5661,7 +5667,7 @@ static void hash_sole_work(struct thr_info *mythr)
|
|||||||
sdiff.tv_sec = sdiff.tv_usec = 0;
|
sdiff.tv_sec = sdiff.tv_usec = 0;
|
||||||
cgtime(&tv_lastupdate);
|
cgtime(&tv_lastupdate);
|
||||||
|
|
||||||
while (42) {
|
while (likely(!cgpu->shutdown)) {
|
||||||
struct work *work = get_work(mythr, thr_id);
|
struct work *work = get_work(mythr, thr_id);
|
||||||
int64_t hashes;
|
int64_t hashes;
|
||||||
|
|
||||||
@ -5937,7 +5943,7 @@ void hash_queued_work(struct thr_info *mythr)
|
|||||||
const int thr_id = mythr->id;
|
const int thr_id = mythr->id;
|
||||||
int64_t hashes_done = 0;
|
int64_t hashes_done = 0;
|
||||||
|
|
||||||
while (42) {
|
while (likely(!cgpu->shutdown)) {
|
||||||
struct timeval diff;
|
struct timeval diff;
|
||||||
int64_t hashes;
|
int64_t hashes;
|
||||||
|
|
||||||
|
2
miner.h
2
miner.h
@ -542,6 +542,8 @@ struct cgpu_info {
|
|||||||
pthread_rwlock_t qlock;
|
pthread_rwlock_t qlock;
|
||||||
struct work *queued_work;
|
struct work *queued_work;
|
||||||
unsigned int queued_count;
|
unsigned int queued_count;
|
||||||
|
|
||||||
|
bool shutdown;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern bool add_cgpu(struct cgpu_info*);
|
extern bool add_cgpu(struct cgpu_info*);
|
||||||
|
Loading…
Reference in New Issue
Block a user