LINUX.ORG.RU

История изменений

Исправление Elyas, (текущая версия) :

Нельзя рассчитывать на на определённый порядок при работе параллельных процессов в многозадачной системе. Одновременное использование одного файла(в данном случае терминала, связанного с stdout) несколькими процессами без синхронизации не может привести ни к чему хорошему.

Ну и в частности «жёлтый» может завершиться по ошибке открытия fifo, который мог ещё не успеть создать «оранжевый»

В общем нужны семафоры, циклы с ожиданием, проверками, таймауты и т.п. Без этого нельзя. Иначе программа, казалось бы отлаженная на одноядерной системе, начнёт сбоить на реально многопроцессорной или просто на иначе настроенной ОС.

Исходная версия Elyas, :

Нельзя рассчитывать на на определённый порядок при работе параллельных процессов в многозадачной системе. Одновременное использование одного файла(в данном случае терминала, связанного с stdout) несколькими процессами без синхронизации не может привести ни к чему хорошему.

Ну и в частности «жёлтый» может завершиться по ошибке открытия fifo, который мог ещё не успеть создать «оранжевый»

В общем нужны семафоры, циклы с ожиданием, проверками, таймауты и т.п. Без этого нельзя. Иначе программа, казалось бы отлаженная на на одноядерной системе, начнёт сбоить на реально многопроцессорной или просто на иначе настроенной ОС.