LINUX.ORG.RU

Qt, QSemaphore и его потокобезопасность


0

0

В документации на 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), если между проверкой и захватом ресурсов может вклиниться кто-нить другой? Чего я не понимаю в этой жизни?

Всё, вопрос снят, недостаточно хорошо разобрался с документацией. Всем спасибо. :-)

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

Всегда стараюсь, если вопрос решён, всё-таки объяснить, как он был решён. Ведь, это может понадобиться кому-нибудь другому на будущее. А так - придёт кто-то по ссылке на гугле, а тут - "вопрос решён". И всё.

fukazzz
()
Ответ на: комментарий от fukazzz

Хорошо. Впредь постараюсь помнить. :-)

Как-то я проглядел, что tryAcquire(int i=1) при достаточном количестве ресурсов у семафора захватывает их, и возвращает труё. Ну, первый день после праздников, ещё и воскресенье...

one_more_hokum ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.