Commit 03ad59f28784b882b1e741b88307a6ecfbec71f4

Con Kolivas 2013-10-11T15:37:55

Add a small amount to the usb timeout before cancelling to allow for a regular usb polling interval to pass.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/usbutils.c b/usbutils.c
index 2c190fb..9306623 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -2227,7 +2227,9 @@ static int callback_wait(struct cgpu_info *cgpu, struct usb_transfer *ut, int *t
 	int ret;
 
 	cgtime(&tv_now);
-	ms_to_timespec(&ts_end, timeout);
+	/* Add enough to the timeout to allow for a normal USB polling interval
+	 * of 1ms to pass. */
+	ms_to_timespec(&ts_end, timeout + 2);
 	timeval_to_spec(&ts_now, &tv_now);
 	timeraddspec(&ts_end, &ts_now);
 	ret = pthread_cond_timedwait(&ut->cond, &ut->mutex, &ts_end);