From: wmorgan Date: Tue, 11 Sep 2007 22:21:51 +0000 (+0000) Subject: bugfix: killing threads actually works now X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=76177784f453c6bdd544ec3974dcee8b5779cd8a;p=sup bugfix: killing threads actually works now git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@562 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- diff --git a/lib/sup/index.rb b/lib/sup/index.rb index afc98fa..f35b7f3 100644 --- a/lib/sup/index.rb +++ b/lib/sup/index.rb @@ -265,9 +265,13 @@ EOS q = build_query :qobj => q, :load_killed => true num_queries += 1 + killed = false @index.search_each(q, :limit => :all) do |docid, score| break if opts[:limit] && messages.size >= opts[:limit] - break if @index[docid][:label].split(/\s+/).include? "killed" unless opts[:load_killed] + if @index[docid][:label].split(/\s+/).include?("killed") && !opts[:load_killed] + killed = true + break + end mid = @index[docid][:message_id] unless messages.member?(mid) #Redwood::log "got #{mid} as a child of #{id}" @@ -277,8 +281,12 @@ EOS end end end - Redwood::log "ran #{num_queries} queries to build thread of #{messages.size + 1} messages for #{m.id}: #{m.subj}" if num_queries > 0 - messages.each { |mid, builder| yield mid, builder } + if killed + Redwood::log "thread for #{m.id} is killed, ignoring" + else + Redwood::log "ran #{num_queries} queries to build thread of #{messages.size + 1} messages for #{m.id}: #{m.subj}" if num_queries > 0 + messages.each { |mid, builder| yield mid, builder } + end end ## builds a message object from a ferret result diff --git a/lib/sup/thread.rb b/lib/sup/thread.rb index 020cf72..c9657c4 100644 --- a/lib/sup/thread.rb +++ b/lib/sup/thread.rb @@ -303,7 +303,6 @@ class ThreadSet next if contains_id? mid m = builder.call - add_message m load_thread_for_message m, :load_killed => opts[:load_killed] yield size if block_given? end