mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 07:17:58 +00:00
Add usb transfer cancellation on shutdown and documentation regarding where cancellable transfers are suitable.
This commit is contained in:
parent
eb5b611483
commit
9d8e3df0a8
@ -3931,6 +3931,9 @@ static void restart_threads(void)
|
|||||||
mutex_unlock(&restart_lock);
|
mutex_unlock(&restart_lock);
|
||||||
|
|
||||||
#ifdef USE_USBUTILS
|
#ifdef USE_USBUTILS
|
||||||
|
/* Cancels any cancellable usb transfers. Flagged as such it means they
|
||||||
|
* are usualy waiting on a read result and it's safe to abort the read
|
||||||
|
* early. */
|
||||||
cancel_usb_transfers();
|
cancel_usb_transfers();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -7814,6 +7817,9 @@ static void *libusb_poll_thread(void __maybe_unused *arg)
|
|||||||
while (usb_polling)
|
while (usb_polling)
|
||||||
libusb_handle_events_timeout_completed(NULL, &tv_end, NULL);
|
libusb_handle_events_timeout_completed(NULL, &tv_end, NULL);
|
||||||
|
|
||||||
|
/* Cancel any cancellable usb transfers */
|
||||||
|
cancel_usb_transfers();
|
||||||
|
|
||||||
/* Keep event handling going until there are no async transfers in
|
/* Keep event handling going until there are no async transfers in
|
||||||
* flight. */
|
* flight. */
|
||||||
do {
|
do {
|
||||||
|
@ -2217,6 +2217,10 @@ struct usb_transfer {
|
|||||||
struct list_head list;
|
struct list_head list;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Cancellable transfers should only be labelled as such if it is safe for them
|
||||||
|
* to effectively mimic timing out early. This flag is usually used to signify
|
||||||
|
* a read is waiting on a non-critical response that takes a long time and the
|
||||||
|
* driver wishes it be aborted if work restart message has been sent. */
|
||||||
void cancel_usb_transfers(void)
|
void cancel_usb_transfers(void)
|
||||||
{
|
{
|
||||||
struct usb_transfer *ut;
|
struct usb_transfer *ut;
|
||||||
|
Loading…
Reference in New Issue
Block a user