Я хочу разбудить все потоки, спящие во фьютексе. Меня смущает несоответствие на странице 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