lock flying_transfers during transfer removal
authorDaniel Drake <dsd@gentoo.org>
Fri, 18 Apr 2008 19:00:31 +0000 (20:00 +0100)
committerDaniel Drake <dsd@gentoo.org>
Fri, 18 Apr 2008 22:25:48 +0000 (23:25 +0100)
TODO
libusb/io.c

diff --git a/TODO b/TODO
index bf4d27c..7b4b793 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,5 @@
 for 1.0
 =======
-thread safety
 error codes
 fixme review
 review functionality missing over 0.1
index 8ea9a4b..5e0e92f 100644 (file)
@@ -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;