user/dev discussion of public-inbox itself
 help / Atom feed
* [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