Здравствуйте,
Есть процесс с N потомками (созданных с помощью fork()). Каждому такому процессу нужно в определенный момент времени владеть ресурсом. Для того, что бы определять занят ресурс или свободен для "захвата" хочу использовать глобальную статическую переменную.
Вопрос: есть ли гарантия того, что операции "захвата", "освобождения" и проверка занятости ресурса будут атомарными, т.е. всегда один процесс сможет без проблем сделать что-то вроде такого?
if (!res_busy) { res_busy = 1; <do_smth>; res_busy = 0 }
Слышал про семафоры, но мне кажется, что они несколько complicated для моей задачи. Меня, как минимум, интересует переносимость Linux/BSD/Solaris.
Спасибо.