У меня есть инструмент командной строки, написанный на Delphi, задача которого состоит в том, чтобы вставить узел в файл XML, а затем немедленно завершить работу. Мне нужно сделать возможным одновременное выполнение нескольких экземпляров инструмента и вставлять узлы в один и тот же XML.
Для достижения этой цели я ввел простой файл "mutex" - инструмент создает один временный файл перед записью в XML, а затем удаляет временный файл после завершения копирования. Поэтому, если выполняется другой экземпляр, он проверяет наличие этого временного файла и ожидает его удаления. Затем он снова создает временный файл, записывает в XML и удаляет временный файл.
Проблема в том, что это работает нормально только тогда, когда 2-3 экземпляра пытаются одновременно записать в файл XML. Когда есть больше экземпляров - некоторые из них просто ждут вечно и никогда не добавляют узел в XML.
Есть ли лучший способ заставить его работать с большим количеством экземпляров, работающих и записывающих в XML одновременно?