From d2ff2b14a15e5099ff0214502944de30f141a39c Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Fri, 18 Apr 2008 20:00:31 +0100 Subject: [PATCH] lock flying_transfers during transfer removal --- TODO | 1 - libusb/io.c | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index bf4d27c..7b4b793 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ for 1.0 ======= -thread safety error codes fixme review review functionality missing over 0.1 diff --git a/libusb/io.c b/libusb/io.c index 8ea9a4b..5e0e92f 100644 --- a/libusb/io.c +++ b/libusb/io.c @@ -806,7 +806,10 @@ void usbi_handle_transfer_completion(struct usbi_transfer *itransfer, __USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer); uint8_t flags; + pthread_mutex_lock(&flying_transfers_lock); list_del(&itransfer->list); + pthread_mutex_unlock(&flying_transfers_lock); + if (status == LIBUSB_TRANSFER_SILENT_COMPLETION) return; -- 2.7.4