There are no unit tests for this because the current non-blocking Lock unit tests fail, so I wasn't sure how to do a non-blocking Semaphore unit test. I'm happy to write one, but I'm not really good with unit tests in general so I'm not sure how to do it.
In the mean time, please review this code and let me know what you think.
Issue #65: Add a blocking=False option to the Semaphore lock object.
Any thoughts guys?
changelog / doc improvement and test for #65
I manually cherry-picked the commit and added a test / doc fixes. Thx!