race condition fix: block all signals before decrementing thread count