1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 14:58:01 +00:00

Use a timeout with usb handle events set to a nominal 200ms and wait for the polling thread to shut down before deinitialising libusb.

This commit is contained in:
Con Kolivas 2013-10-12 11:06:54 +11:00
parent 9f8023a959
commit 56edabc64d

View File

@ -3218,8 +3218,6 @@ static void __kill_work(void)
/* Release USB resources in case it's a restart
* and not a QUIT */
if (!opt_scrypt) {
usb_polling = false;
applog(LOG_DEBUG, "Releasing all USB devices");
usb_cleanup();
@ -7221,6 +7219,8 @@ static void clean_up(void)
clear_adl(nDevs);
#endif
#ifdef USE_USBUTILS
usb_polling = false;
pthread_join(usb_poll_thread, NULL);
libusb_exit(NULL);
#endif
@ -7792,11 +7792,12 @@ static void probe_pools(void)
#ifdef USE_USBUTILS
static void *libusb_poll_thread(void __maybe_unused *arg)
{
struct timeval tv_end = {0, 200000};
RenameThread("usbpoll");
pthread_detach(pthread_self());
while (usb_polling)
libusb_handle_events(NULL);
libusb_handle_events_timeout_completed(NULL, &tv_end, NULL);
return NULL;
}