Skip to content

Commit 26d9e62

Browse files
committed
better memory debugging with everybody's friend, $^P |= 0x200
git-svn-id: http://code.sixapart.com/svn/djabberd/trunk@683 43dd9337-660f-0410-bd32-e7601923a1a1
1 parent 4518e00 commit 26d9e62

File tree

3 files changed

+16
-36
lines changed

3 files changed

+16
-36
lines changed

dev/lbsub.pl

-32
This file was deleted.

djabberd

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
#!/usr/bin/perl
22

33
BEGIN {
4-
$^P |= 0x01 if $ENV{TRACE_DJABBERD};
4+
# tell debugger of sub enter/exit,
5+
$^P |= 0x01 if $ENV{TRACE_DJABBERD};
6+
# keep descriptive string value of all anon subs maintained per coderef:
7+
$^P |= 0x200 unless $ENV{NDEBUG_SUB_NAMES};
58
};
69

710
use strict;

lib/DJabberd/Connection/Admin.pm

+12-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use base 'Danga::Socket';
77
use fields qw(buffer server handle);
88
use vars qw($initial_memory);
99

10+
use Devel::Peek ();
1011
my $has_gladiator = eval "use Devel::Gladiator; 1;";
1112
my $has_cycle = eval "use Devel::Cycle; 1;";
1213
my $has_devel_leak = eval "use Devel::Leak; 1;";
@@ -245,6 +246,9 @@ sub arena_ref_counts {
245246
elsif (ref $it eq "DJabberd::Callback") {
246247
$ct{"DJabberd::Callback-" . $it->{_phase}}++ if $it->{_phase};
247248
}
249+
elsif (ref $it eq "CODE") {
250+
$ct{Devel::Peek::CvGV($it)}++;
251+
}
248252
}
249253
$all = undef;
250254
return \%ct;
@@ -271,7 +275,6 @@ sub CMD_gladiator {
271275
next unless $delta;
272276
} elsif ($cmd eq "lite") {
273277
next if $k =~ /^REF-/;
274-
next if $k =~ /^DJabberd::AnonSubFrom::lib_DJabberd_RosterStorage/;
275278
next if $k =~ /log4perl/i;
276279
} else {
277280
next unless $ct->{$k} > 1 || $cmd eq "all";
@@ -292,7 +295,6 @@ sub CMD_cycle {
292295
}
293296

294297
my $array = Devel::Gladiator::walk_arena();
295-
#my @list = grep { ref($_) =~ /^DJabberd::VHost|DJabberd::Connection::ClientIn|DJabberd::AnonSubFrom/ } @$array;
296298
my @list = grep { ref($_) =~ /^DJabberd|Gearman|CODE/ } @$array;
297299
$array = undef;
298300

@@ -376,7 +378,14 @@ sub end {
376378
sub write {
377379
my $self = shift;
378380
my $string = shift;
379-
$self->SUPER::write($string . "\r\n");
381+
382+
if (defined $string) {
383+
$self->SUPER::write($string . "\r\n");
384+
} else {
385+
# because event_write by default just kicks off more events, calling
386+
# write with undef...
387+
$self->SUPER::write(undef);
388+
}
380389
}
381390

382391
sub close {

0 commit comments

Comments
 (0)