Man page http://man7.org/linux/man-pages/man2/futex.2.html states for FUTEX_CMP_REQUEUE Typical values to specify for val are 0 or 1. How is a value of 0 useful? (Specifying INT_MAX is not useful, because it would make the FUTEX_CMP_REQUEUE operation equivalent to FUTEX_WAKE.) This is incorrect because FUTEX_WAKE doesn't have the expected (val3) parameter. Same for the remark that follows this statement after "The limit value specified via val2 is typically either 1 or INT_MAX.": (Specifying the argument as 0 is not useful, because it would make the FUTEX_CMP_REQUEUE operation equivalent to FUTEX_WAIT.) -- Carlo Wood <carlo@xxxxxxxxxx>