mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 06:23:38 +08:00
Use DistributedMutex to make sure poll votes are tallied correctly.
This commit is contained in:
parent
56ee1ac569
commit
63b96da63a
|
@ -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?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user