* [PATCH 0/2] searchthread: minor cleanups and API change
@ 2016-12-21 7:36 Eric Wong
2016-12-21 7:36 ` [PATCH 1/2] searchthread: update comment about loop prevention Eric Wong
0 siblings, 1 reply; 2+ messages in thread
From: Eric Wong @ 2016-12-21 7:36 UTC (permalink / raw)
To: meta
Couldn't find more ways to speed things up, but it's looking
pretty good. walk_thread could probably be moved into SearchThread.pm
(from View.pm), though
I also read enough of the Perl5 source code to learn
"scalar keys %hash" and "scalar values %hash"
follow the same code path and is optimized to not generate
an intermediate array :)
Eric Wong (2):
searchthread: update comment about loop prevention
searchthread: simplify API and remove needless OO
lib/PublicInbox/SearchThread.pm | 39 ++++++++++++++-------------------------
lib/PublicInbox/SearchView.pm | 25 ++++++++++++-------------
lib/PublicInbox/View.pm | 19 ++++++++-----------
t/thread-cycle.t | 8 ++++----
4 files changed, 38 insertions(+), 53 deletions(-)
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 1/2] searchthread: update comment about loop prevention
2016-12-21 7:36 [PATCH 0/2] searchthread: minor cleanups and API change Eric Wong
@ 2016-12-21 7:36 ` Eric Wong
0 siblings, 0 replies; 2+ messages in thread
From: Eric Wong @ 2016-12-21 7:36 UTC (permalink / raw)
To: meta
It definitely is necessary to prevent looping with the
%seen hash.
---
lib/PublicInbox/SearchThread.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/PublicInbox/SearchThread.pm b/lib/PublicInbox/SearchThread.pm
index 601a84b..fafe7d7 100644
--- a/lib/PublicInbox/SearchThread.pm
+++ b/lib/PublicInbox/SearchThread.pm
@@ -129,7 +129,7 @@ sub add_child {
sub has_descendent {
my ($self, $child) = @_;
- my %seen; # loop prevention XXX may not be necessary
+ my %seen; # loop prevention
while ($child) {
return 1 if $self == $child || $seen{$child}++;
$child = $child->{parent};
--
EW
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, back to index
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-21 7:36 [PATCH 0/2] searchthread: minor cleanups and API change Eric Wong
2016-12-21 7:36 ` [PATCH 1/2] searchthread: update comment about loop prevention Eric Wong
user/dev discussion of public-inbox itself
Archives are clonable:
git clone --mirror https://public-inbox.org/meta
git clone --mirror http://czquwvybam4bgbro.onion/meta
git clone --mirror http://hjrcffqmbrq6wope.onion/meta
git clone --mirror http://ou63pmih66umazou.onion/meta
Newsgroups are available over NNTP:
nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
nntp://news.gmane.org/gmane.mail.public-inbox.general
note: .onion URLs require Tor: https://www.torproject.org/
or Tor2web: https://www.tor2web.org/
AGPL code for this site: git clone https://public-inbox.org/ public-inbox