Browse Source

usbinfo.devlock is only ever write locked so convert it to a mutex

Con Kolivas 12 years ago
parent
commit
14887ba852
2 changed files with 6 additions and 6 deletions
  1. 5 5
      usbutils.c
  2. 1 1
      usbutils.h

+ 5 - 5
usbutils.c

@@ -34,11 +34,11 @@
  */
  */
 #define DEVLOCK(cgpu, _pth_state) do { \
 #define DEVLOCK(cgpu, _pth_state) do { \
 			pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &_pth_state); \
 			pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &_pth_state); \
-			wr_lock(cgpu->usbinfo.devlock); \
+			mutex_lock(cgpu->usbinfo.devlock); \
 			} while (0)
 			} while (0)
 
 
 #define DEVUNLOCK(cgpu, _pth_state) do { \
 #define DEVUNLOCK(cgpu, _pth_state) do { \
-			wr_unlock(cgpu->usbinfo.devlock); \
+			mutex_unlock(cgpu->usbinfo.devlock); \
 			pthread_setcancelstate(_pth_state, NULL); \
 			pthread_setcancelstate(_pth_state, NULL); \
 			} while (0)
 			} while (0)
 
 
@@ -1384,7 +1384,7 @@ struct cgpu_info *usb_alloc_cgpu(struct device_drv *drv, int threads)
 	if (unlikely(!cgpu->usbinfo.devlock))
 	if (unlikely(!cgpu->usbinfo.devlock))
 		quit(1, "Failed to calloc devlock for %s in usb_alloc_cgpu", drv->dname);
 		quit(1, "Failed to calloc devlock for %s in usb_alloc_cgpu", drv->dname);
 
 
-	rwlock_init(cgpu->usbinfo.devlock);
+	mutex_init(cgpu->usbinfo.devlock);
 
 
 	return cgpu;
 	return cgpu;
 }
 }
@@ -3083,9 +3083,9 @@ void usb_cleanup()
 			case DRIVER_modminer:
 			case DRIVER_modminer:
 			case DRIVER_icarus:
 			case DRIVER_icarus:
 			case DRIVER_avalon:
 			case DRIVER_avalon:
-				wr_lock(cgpu->usbinfo.devlock);
+				mutex_lock(cgpu->usbinfo.devlock);
 				release_cgpu(cgpu);
 				release_cgpu(cgpu);
-				wr_unlock(cgpu->usbinfo.devlock);
+				mutex_unlock(cgpu->usbinfo.devlock);
 				count++;
 				count++;
 				break;
 				break;
 			default:
 			default:

+ 1 - 1
usbutils.h

@@ -237,7 +237,7 @@ struct cg_usb_info {
 	 * that uses the lock - however, all usbutils code MUST use it
 	 * that uses the lock - however, all usbutils code MUST use it
 	 * to avoid devices disappearing while in use by multiple threads
 	 * to avoid devices disappearing while in use by multiple threads
 	 */
 	 */
-	pthread_rwlock_t *devlock;
+	pthread_mutex_t *devlock;
 
 
 	time_t last_pipe;
 	time_t last_pipe;
 	uint64_t pipe_count;
 	uint64_t pipe_count;