On Fri, 20 Jul 2001, Igor Sysoev wrote:
>
> On Fri, 20 Jul 2001, Yury D. Belotitsky wrote:
>
> > > А то вот такая программка
> > ....skip....
> > > на FreeBSD выдаёт "q in free(): warning: page is already
> > free.",
> >
> > У меня на 2.2.8 не выдает. Stable, однако :)))
>
> Это не стэйбл, это замалчивание ошибок.
> Потому как ошибка есть - двойной вызов free().
>
Вообще говоря это долгое время ошибкой не считалось. И существует куча
СТАРОГО софта Unix'ового, который на это опирается. И когда разработчики
glibc заявили, что они не считают такие программы правильными, и если
они с glibc не работают, то нужно обращаться не в FSF, а к разработчикам
оных программ, то на них много кто обижался. Но постепенно все привыкли
и, в общем, согласислись, что такие программы все же ошибочны (если у кого
есть проблемы с подсчетом references - для тех есть BGC, который сам все
считает; а ежели взялся, то делай это корректно) - только "меры наказания"
разные: FreeBSD (современная) тихо пишет в log сообщение об ошибке, glibc
же вообще никак подобную ситуацию не обрабатывает (что обычно кончается
убиеием программы). Второй вариант, разумеется, правильнее, но по
историческим причинам, я думаю, FreeBSD еще долго не будет такие
программы убивать...
P.S. Если у кого есть проблемы с подсчетом references - для тех есть BGC,
который сам все считает. А ежели взялся, то делай это корректно.
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =