|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmitry Miloserdov 2:5020/400 13 Apr 2005 21:01:34 To : Valentin Nechayev Subject : Re: DragonFlyBSD --------------------------------------------------------------------------------
Hello, Valentin!
You wrote to me on Wed, 13 Apr 2005 14:13:43 +0000 (UTC):
VN> В данном случае - вполне логичная конструкция. Хотя я бы не отпускал
VN> nfs lock до захвата giant... впрочем, надо очень детально смотреть,
VN> а на это нет времени.
Hе отпускать нельзя. Это единственный документированный констрейт -
giant должен быть захвачен до захвата любых других мутексов.
Конструкция не логичная и очень похоже на костыль.
Пока ты держишь лок ты можешь справетливо предполагать
что сделанная тобой копия глобальной переменной (которая охраняется
этим локом ) соответствует содержимому глобальной. Hо если ты хоть раз
отпускал лок - все локальные копии стали `tainted`. То есть либо ты очень
хорошо думаешь в содержимом каких локальных переменных ты можешь
быть уверенным после вызова произвольной функции либо ты не
освобождаешь в функции локи захваченные до ее вызова.
Второе как видно не получается.
Hа первое же можно только надеяться, а ошибиться там труда не
составит.
With best regards, Dmitry Miloserdov. E-mail: dmitry@bis.ru
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577dfd6b279.html, оценка из 5, голосов 10
|