-# Copyright (C) 2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
-# Intended for PublicInbox::DS->EventLoop in read-only daemons
+# Intended for PublicInbox::DS::event_loop in read-only daemons
# to avoid each_inbox() monopolizing the event loop when hundreds/thousands
# of inboxes are in play.
package PublicInbox::ConfigIter;
PublicInbox::DS::requeue($self) if defined($section);
}
+# for generic PSGI servers
+sub each_section {
+ my $self = shift;
+ my ($pi_cfg, $i, $cb, @arg) = @$self;
+ while (defined(my $section = $pi_cfg->{-section_order}->[$$i++])) {
+ eval { $cb->($pi_cfg, $section, @arg) };
+ warn "E: $@ in ${self}::each_section" if $@;
+ }
+ eval { $cb->($pi_cfg, undef, @arg) };
+ warn "E: $@ in ${self}::each_section" if $@;
+}
+
1;