Browse Source

API use control_lock when switching pools

Kano 13 years ago
parent
commit
419083a7d2
2 changed files with 4 additions and 0 deletions
  1. 3 0
      api.c
  2. 1 0
      miner.h

+ 3 - 0
api.c

@@ -2301,13 +2301,16 @@ static void switchpool(struct io_data *io_data, __maybe_unused SOCKETTYPE c, cha
 	}
 
 	id = atoi(param);
+	mutex_lock(&control_lock);
 	if (id < 0 || id >= total_pools) {
+		mutex_unlock(&control_lock);
 		message(io_data, MSG_INVPID, id, NULL, isjson);
 		return;
 	}
 
 	pool = pools[id];
 	pool->enabled = POOL_ENABLED;
+	mutex_unlock(&control_lock);
 	switch_pools(pool);
 
 	message(io_data, MSG_SWITCHP, id, NULL, isjson);

+ 1 - 0
miner.h

@@ -754,6 +754,7 @@ extern int opt_expiry;
 extern pthread_mutex_t cgusb_lock;
 #endif
 
+extern pthread_mutex_t control_lock;
 extern pthread_mutex_t hash_lock;
 extern pthread_mutex_t console_lock;
 extern pthread_mutex_t ch_lock;