Это один из недостатков всех интерфейсов блокировки POSIX: стандарт добровольно оставляет такое поведение открытым, чтобы допустить слабость в реализации.Если вы хотите написать переносимый код, вы не можете полагаться ни на что из этого.
Это делает реализацию и доказательства для алгоритмов без тупиков особенно утомительными.Это одна из причин, почему в недавней работе мы исследовали блокировки, которые навязывают более строгие правила, а именно политику FIFO для захвата блокировки.