Разбудить все потоки, спящие на фьютексеLinux

Anonymous
Разбудить все потоки, спящие на фьютексе

Сообщение Anonymous »

Я хочу разбудить все потоки, спящие во фьютексе. Меня смущает несоответствие на странице man futex.
В частности, на странице сказано, что val имеет тип uint32_t. Позже, в разделе FUTEX_WAKE на странице будет сказано, что для пробуждения всех потоков необходимо передать INT_MAX в val. предназначен для целых чисел со знаком, а не для целых чисел без знака. Вместо этого я ожидал бы передать UINT32_MAX. Хотя я также мог бы предвидеть аргумент, что переменная val повторно используется для разных целей, и поэтому INT_MAX по-прежнему является правильным вариантом, поскольку val приводится к int в ядре.
Как это правильно сделать?

Подробнее здесь: https://stackoverflow.com/questions/783 ... g-on-futex

Вернуться в «Linux»