commit 76177784f453c6bdd544ec3974dcee8b5779cd8a
parent 401a1ab60af48dca515f0eb1bfeb845b8b4a5406
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Tue, 11 Sep 2007 22:21:51 +0000
bugfix: killing threads actually works now
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@562 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git 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
@@ -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