В документации на QSemaphore (Qt 4.4.3) про функцию acquire(int n=1) сказано буквально следующее:
> If n > available(), this call will block until enough resources are available.
То-есть, чтобы не получить затык на этой функции, сперва нужно проверить, достаточно-ли свободных ресурсов у семафора (функция tryAcquire(int n=1)). Про какую тогда потокобезопасность семафоров идёт спич (All the functions in this class are thread-safe), если между проверкой и захватом ресурсов может вклиниться кто-нить другой? Чего я не понимаю в этой жизни?