From: Eric Wong <e@80x24.org>
Date: Wed, 18 Jan 2017 19:13:09 +0000 (+0000)
Subject: watchmaildir: limit live importer processes
X-Git-Tag: v1.0.0~92
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=c265481528208a832c5731b8da597554f2a8f693;p=public-inbox.git

watchmaildir: limit live importer processes

We don't want to be triggering OOM or swapping on weaker
systems when we have dozens of inboxes as potential targets.
---

diff --git a/lib/PublicInbox/WatchMaildir.pm b/lib/PublicInbox/WatchMaildir.pm
index d08f2297..0b284bdb 100644
--- a/lib/PublicInbox/WatchMaildir.pm
+++ b/lib/PublicInbox/WatchMaildir.pm
@@ -224,7 +224,14 @@ sub _importer_for {
 		my $addr = $inbox->{-primary_address};
 		PublicInbox::Import->new($git, $name, $addr, $inbox);
 	};
-	$self->{importers}->{"$im"} = $im;
+
+	my $importers = $self->{importers};
+	if (scalar(keys(%$importers)) > 2) {
+		delete $importers->{"$im"};
+		_done_for_now($self);
+	}
+
+	$importers->{"$im"} = $im;
 }
 
 sub _scrubber_for {