Pass the thr argument to the read and write threads for hashfast to have access to its data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/driver-hashfast.c b/driver-hashfast.c
index ece276e..130377f 100644
--- a/driver-hashfast.c
+++ b/driver-hashfast.c
@@ -363,7 +363,8 @@ static void hashfast_detect(bool hotplug)
static void *hf_read(void *arg)
{
- struct cgpu_info *hashfast = (struct cgpu_info *)arg;
+ struct thr_info *thr = (struct thr_info *)arg;
+ struct cgpu_info *hashfast = thr->cgpu;
struct hashfast_info *info = hashfast->device_data;
while (likely(!hashfast->shutdown)) {
@@ -374,7 +375,8 @@ static void *hf_read(void *arg)
static void *hf_write(void *arg)
{
- struct cgpu_info *hashfast = (struct cgpu_info *)arg;
+ struct thr_info *thr = (struct thr_info *)arg;
+ struct cgpu_info *hashfast = thr->cgpu;
struct hashfast_info *info = hashfast->device_data;
while (likely(!hashfast->shutdown)) {
@@ -383,7 +385,7 @@ static void *hf_write(void *arg)
return NULL;
}
-static bool hashfast_prepare(struct thr_info*thr)
+static bool hashfast_prepare(struct thr_info *thr)
{
struct cgpu_info *hashfast = thr->cgpu;
struct hashfast_info *info = hashfast->device_data;
@@ -393,9 +395,9 @@ static bool hashfast_prepare(struct thr_info*thr)
mutex_init(&info->write_mutex);
if (pthread_cond_init(&info->write_cond, NULL))
quit(1, "Failed to pthread_cond_init in hashfast_prepare");
- if (pthread_create(&info->read_thr, NULL, hf_read, (void *)hashfast))
+ if (pthread_create(&info->read_thr, NULL, hf_read, (void *)thr))
quit(1, "Failed to pthread_create read thr in hashfast_prepare");
- if (pthread_create(&info->write_thr, NULL, hf_write, (void *)hashfast))
+ if (pthread_create(&info->write_thr, NULL, hf_write, (void *)thr))
quit(1, "Failed to pthread_create write thr in hashfast_prepare");
cgtime(&now);