[devel] /var/lock/rpm/update-vimhelp

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_altlinux=2Eru?=
Ср Июл 9 11:24:10 MSD 2008


* Dmitry V. Levin <ldv@> [080709 02:03]:
> > > Если parent сделал open, а потом fork, child выполнил
> > > F_SETLK, а parent потом завершился, то блокировка слетит в
> > > момент завершения parent.
> > Какова вероятность, что при возврате из daemon() parent ещё не
> > умер?
> Около 50%
Какое унылое [censored] эта GNU/RaceOS...

Если унести open() после daemon(), неудачное открытие файла
немного намусорит в консоль.  Ещё один race между close() и
execvp(), кто-то может туда просочиться.  Если close() не делать,
этот fd уйдёт в "тот процесс".  А mandatory locks можно сказать
что не работают.

Можно пойти сложным путём, делать open() и fcntl() до вызова
daemon(), потом делать ещё один fcntl(F_SETLKW) чтобы дождаться
смерти parent'а.  Или вызывать wait_for_pdeath() с pid'ом
parent'а, но это мне нравится ещё меньше.

Закоммитил первый вариант с мусором и утечкой дескриптора.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080709/ad86ba29/attachment-0002.bin>


Подробная информация о списке рассылки Devel