[Moscow.pm] Дайджест списка рассылки Moscow-pm; том 21, выпуск 44

Ruslan Zakirov ruslan.zakirov на gmail.com
Чт Июл 30 08:26:08 PDT 2009


Нужно чуть больше магии. Не все так просто, но я просто говорил о
возможности, а не о полном решении. Где-то вот в таком направлении
нужно двигаться:

use Devel::Peek qw(Dump SvREFCNT);
sub DESTROY {
    return if in_global_destruction();

    my $self = shift;
    if ( $self->{'next'} ) {
        if ( SvREFCNT($self->{'next'}) > 1 && $self->{'next'}{'prev'} )  {
            $self->{'next'}{'prev'} = $self;
            weaken $self->{'next'};
        }
    }
    if ( $self->{'prev'} ) {
        if ( SvREFCNT($self->{'prev'}) > 1 && isweak $self->{'prev'}{'next'} ) {
            $self->{'prev'}{'next'} = $self;
            weaken $self->{'prev'};
        }
    }
}



2009/7/30 Ruslan Zakirov <ruslan.zakirov на gmail.com>:
> Возможно я где-то перемудрил и ошибся. Самое главное идея. Сейчас посмотрю.
>
> 2009/7/30 ksurent <ksurent на gmail.com>:
>> Сори, забыл и тему поменять, и процитировал криво. Это была цитата письма
>> Руслана Закирова, где он привел код для работы с двусвязными списками.
>>
>> Именно этот код у меня "течет":
>> $ perl -MDevel::LeakTrace ll.pl
>>
>> ... поскипано ...
>>
>> leaked SV(0x83f651c) from
>> /usr/lib/perl5/5.10.0/i586-linux-thread-multi/Data/Dumper.pm line 533
>> leaked SV(0x82a88c4) from ll.pl line 59
>> leaked SV(0x8333b94) from ll.pl line 31
>> leaked SV(0x8333c44) from ll.pl line 18
>> leaked AV(0x8333c84) from ll.pl line 32
>> leaked SV(0x8333df4) from ll.pl line 19
>> leaked AV(0x8333e54) from ll.pl line 20
>> leaked SV(0x8333f84) from
>> /usr/lib/perl5/5.10.0/i586-linux-thread-multi/Data/Dumper.pm line 533
>> leaked SV(0x8333fb4) from ll.pl line 11
>> leaked AV(0x8334014) from ll.pl line 44
>> leaked SV(0x82c4dc4) from ll.pl line 11
>> leaked AV(0x82c4dd4) from ll.pl line 11
>> leaked SV(0x82c4e04) from
>> /usr/lib/perl5/5.10.0/i586-linux-thread-multi/Data/Dumper.pm line 533
>> leaked SV(0x82c4e24) from ll.pl line 11
>> leaked SV(0x8321f74) from ll.pl line 11
>>
>> $ uname -a; perl -v
>> Linux sur 2.6.27.25-0.1-pae #1 SMP 2009-07-01 15:37:09 +0200 i686 i686 i386
>> GNU/Linux
>>
>> This is perl, v5.10.0 built for i586-linux-thread-multi
>>
>> 2009/7/30 <moscow-pm-request на pm.org>
>>>
>>> а где код
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
>
>
> --
> Best regards, Ruslan.
>

-- 
Best regards, Ruslan.


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