From 0b271e70401bd7c059d10e2ec8fc802cf0aa9838 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 1 May 2014 02:30:00 +0000 Subject: workaround Mail::Thread memory leak Thanks to Ask for the patch in https://rt.cpan.org/Public/Bug/Display.html?id=22817 --- lib/PublicInbox/Thread.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/PublicInbox/Thread.pm (limited to 'lib/PublicInbox/Thread.pm') diff --git a/lib/PublicInbox/Thread.pm b/lib/PublicInbox/Thread.pm new file mode 100644 index 00000000..a2553da7 --- /dev/null +++ b/lib/PublicInbox/Thread.pm @@ -0,0 +1,19 @@ +# subclass Mail::Thread and use this to workaround a memory leak +# Based on the patch in: https://rt.cpan.org/Public/Bug/Display.html?id=22817 +# License differs from the rest of public-inbox (but is compatible): +# This library is free software; you can redistribute it and/or modify +# it under the same terms as Perl itself. +package PublicInbox::Thread; +use strict; +use warnings; +use base qw(Mail::Thread); +sub _container_class { 'PublicInbox::Thread::Container' } + +package PublicInbox::Thread::Container; +use strict; +use warnings; +use base qw(Mail::Thread::Container); +use Scalar::Util qw(weaken); +sub parent { @_ == 2 ? weaken($_[0]->{parent} = $_[1]) : $_[0]->{parent} } + +1; -- cgit v1.2.3-24-ge0c7