diff options
author | Daniel Drake <dsd@gentoo.org> | 2008-04-18 20:00:31 +0100 |
---|---|---|
committer | Daniel Drake <dsd@gentoo.org> | 2008-04-18 23:25:48 +0100 |
commit | d2ff2b14a15e5099ff0214502944de30f141a39c (patch) | |
tree | 1931d162bee8cfb2b71c2b92fc03c1000f1ddb51 | |
parent | 2569980762cb66804da31e54bef243702da8dfe9 (diff) | |
download | libusb-d2ff2b14a15e5099ff0214502944de30f141a39c.tar.gz |
lock flying_transfers during transfer removal
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | libusb/io.c | 3 |
2 files changed, 3 insertions, 1 deletions
@@ -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; |