Francois Gouget : testbot: Avoid reference cycles in the activity report.

Alexandre Julliard julliard at winehq.org
Thu Dec 21 07:24:24 CST 2017


Module: tools
Branch: master
Commit: 24091deb5078660f608d7ad7568664574fc0dcfa
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=24091deb5078660f608d7ad7568664574fc0dcfa

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Dec 21 12:13:43 2017 +0100

testbot: Avoid reference cycles in the activity report.

Reference cycles cause Perl's primitive reference-count based garbage
collector to leak memory.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 testbot/lib/WineTestBot/Activity.pm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/testbot/lib/WineTestBot/Activity.pm b/testbot/lib/WineTestBot/Activity.pm
index 3a9081a..dcc5895 100644
--- a/testbot/lib/WineTestBot/Activity.pm
+++ b/testbot/lib/WineTestBot/Activity.pm
@@ -25,6 +25,7 @@ WineTestBot::Activity -  reconstruct the TestBot's activity from its history rec
 
 =cut
 
+use Scalar::Util qw(weaken);
 use WineTestBot::Config;
 use WineTestBot::Jobs;
 use WineTestBot::RecordGroups;
@@ -112,6 +113,7 @@ sub GetActivity($)
 
       $VMStatus->{host} = $RecordHost;
       $VMStatus->{vmstatus} = $VMStatus;
+      weaken($VMStatus->{vmstatus}); # avoid memory cycles
       $VMStatus->{start} = $Group->{start};
       my ($Status, @Extra) = split / /, $Record->Value;
       $VMStatus->{status} = $Status;
@@ -176,6 +178,7 @@ sub GetActivity($)
           status => "unknown",
           rows => 1};
         $VMStatus->{vmstatus} = $VMStatus;
+        weaken($VMStatus->{vmstatus}); # avoid memory cycles
       }
       $LastStatusVMs{$VM->Name} = $StatusVMs;
     }




More information about the wine-cvs mailing list