Я хотел быстро реализовать какую-то блокировку в программе perl на Linux, которая могла бы использоваться разными процессами.
Поэтому я использовал mkdir
как атомарная операция, которая возвращает 1
, если каталог не существует, и 0
, если он существует. Я удаляю каталог сразу после критического раздела.
Теперь,мне указали, что это не очень хорошая практика в целом (независимо от языка). Я думаю, что это нормально, но я хотел бы спросить ваше мнение.
edit: чтобы показать пример, мой код выглядел примерно так:
while (!mkdir "lock_dir") {wait some time}
critical section
rmdir "lock_dir"