FIX: Semaphore now locks in the interrupt catch.

Contrary to the code semantics the catch block is actually not still
locked because the interrupt has occurred while the thread was waiting
for the lock object to be pulsed. Therefore it needs to be re-locked
before waitingThreads can be safely checked.