[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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20080709/ad86ba29/attachment.bin>
Подробная информация о списке рассылки Devel