This provides a much safer semaphore than the QSem, QSemN, SampleVar in
base. Those base modules are not exception safe and can be broken by
killThread.

WWW: https://github.com/ChrisKuklewicz/SafeSemaphore
