…причём сдохли ДО того как вызвали shm_unlink()
. В этом случае мне нужно чтобы вновь запущенная куча процессов получила новую чистую память, а не старое состояние.
НЯП вызывать shm_unlink()
сразу после mmap()
нельзя: если после shm_unlink()
другой процесс вызовет shm_open()
с этим же именем, он получит другую область памяти.
Пишут, что в старом API (shmget()
, …) это делается через shmctl()
. Причём по дефолту там как раз нужное мне поведение, что есть правильно с т.з. защиты от race: SIGKILL
может прилететь до shmctl()
. …Хотя как-то мутно, в соседнем же каменте пишут наоборот, а по man shmctl
вообще ни хрена не понятно.
А в новом API походу никак?