Commit 3b910336cef56267bdbecd9cad6a80ac44350ae8

Con Kolivas 2012-12-18T22:48:56

Protect the best_share/best_diff values under control lock.

diff --git a/cgminer.c b/cgminer.c
index 335f77e..329f680 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2352,10 +2352,12 @@ static uint64_t share_diff(const struct work *work)
 	if (unlikely(!d64))
 		d64 = 1;
 	ret = diffone / d64;
+	mutex_lock(&control_lock);
 	if (ret > best_diff) {
 		best_diff = ret;
 		suffix_string(best_diff, best_share, 0);
 	}
+	mutex_unlock(&control_lock);
 	return ret;
 }
 
@@ -2367,10 +2369,12 @@ static uint64_t scrypt_diff(const struct work *work)
 	if (unlikely(!d64))
 		d64 = 1;
 	ret = scrypt_diffone / d64;
+	mutex_lock(&control_lock);
 	if (ret > best_diff) {
 		best_diff = ret;
 		suffix_string(best_diff, best_share, 0);
 	}
+	mutex_unlock(&control_lock);
 	return ret;
 }