Wait for other thread to unlock when not able to lock #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This request adds a sleep call of
0
seconds in the try_lock function. This resolves an issue where the current thread is constantly trying to lock the i2c bus, without giving another thread the 'opportunity' to complete it's operation and unlock the i2c bus.This sleep call drastically improves performance on my pi zero board:

^ without the sleep call
^ using the sleep call
I'm not sure if this is the right way of 'unblocking' the i2c bus for other threads, but it's for sure 1000x better than before for me. Therefore I feel like it's worth sharing with others.