Add a gbt mutex within the pool struct for protecting the gbt values.
diff --git a/cgminer.c b/cgminer.c
index 946b654..10c6a5b 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -420,12 +420,11 @@ struct pool *add_pool(void)
pool->pool_no = pool->prio = total_pools;
pools = realloc(pools, sizeof(struct pool *) * (total_pools + 2));
pools[total_pools++] = pool;
- if (unlikely(pthread_mutex_init(&pool->pool_lock, NULL)))
- quit(1, "Failed to pthread_mutex_init in add_pool");
+ mutex_init(&pool->pool_lock);
if (unlikely(pthread_cond_init(&pool->cr_cond, NULL)))
quit(1, "Failed to pthread_cond_init in add_pool");
- if (unlikely(pthread_mutex_init(&pool->stratum_lock, NULL)))
- quit(1, "Failed to pthread_mutex_init in add_pool");
+ mutex_init(&pool->stratum_lock);
+ mutex_init(&pool->gbt_lock);
INIT_LIST_HEAD(&pool->curlring);
/* Make sure the pool doesn't think we've been idle since time 0 */
diff --git a/miner.h b/miner.h
index e608c13..278b2be 100644
--- a/miner.h
+++ b/miner.h
@@ -886,6 +886,7 @@ struct pool {
/* GBT variables */
bool has_gbt;
+ pthread_mutex_t gbt_lock;
};
#define GETWORK_MODE_TESTPOOL 'T'