summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Drake <dsd@gentoo.org>2008-04-18 20:00:31 +0100
committerDaniel Drake <dsd@gentoo.org>2008-04-18 23:25:48 +0100
commitd2ff2b14a15e5099ff0214502944de30f141a39c (patch)
tree1931d162bee8cfb2b71c2b92fc03c1000f1ddb51
parent2569980762cb66804da31e54bef243702da8dfe9 (diff)
downloadlibusb-d2ff2b14a15e5099ff0214502944de30f141a39c.tar.gz
lock flying_transfers during transfer removal
-rw-r--r--TODO1
-rw-r--r--libusb/io.c3
2 files changed, 3 insertions, 1 deletions
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;