[Solved] Mutex unlocking first, then lock


I was doing a little digging on my last topic about USB not working properly, and I found this code where the Mutex unlock comes before Mutex lock around a do_while loop. Is this correct?

Unlocks on line 248 and lock on 262

No worries. Found the answer

Tell us and we can close the thread as solved.:smiley:

In the function static status_t usb_disk_attach(device_node *node, usb_device newDevice, void **cookie), which gets called to load a new disk_device, the device mutex is locked. Then further in the function call stack while checking the usb_drive for health (I suppose), we arrive at usb_disk_transfer_data. Here it unlocks the mutex to interact with the device->lock (which is a semaphore), and locks it again while exiting. And lastly the mutex is unlocked again while exiting usb_disk_attach.

4 Likes