Use DistributedMutex to make sure poll votes are tallied correctly.

This commit is contained in:
Vikhyat Korrapati 2014-04-11 11:18:27 +05:30
parent 56ee1ac569
commit 63b96da63a

View File

@ -143,6 +143,7 @@ module ::PollPlugin
return if is_closed? return if is_closed?
# Get the user's current vote. # Get the user's current vote.
DistributedMutex.new(details_key).synchronize do
vote = get_vote(user) vote = get_vote(user)
vote = nil unless details.keys.include? vote vote = nil unless details.keys.include? vote
@ -153,6 +154,7 @@ module ::PollPlugin
::PluginStore.set("poll", vote_key(user), option) ::PluginStore.set("poll", vote_key(user), option)
set_details! new_details set_details! new_details
end end
end
def serialize(user) def serialize(user)
return nil if details.nil? return nil if details.nil?