Commit 34ca3914 authored by Guido Trotter's avatar Guido Trotter
Browse files

LockSet: allow lists with duplicate values

If a list with a duplicate value is passed to a lockset what the code
now does is to try to acquire the lock twice, generating a
double-acquire exception in the SharedLock code. This is definitely an
issue. In order to solve it we can either forbit double values in a list
or just delete the duplicates. In this patch we go for the latter
solution, removing any duplicate values when creating the acquire_list.

Reviewed-by: imsnah
parent 8a2941c4
......@@ -452,7 +452,7 @@ class LockSet:
# First we look the locks up on __lockdict. We have no way of being sure
# they will still be there after, but this makes it a lot faster should
# just one of them be the already wrong
for lname in names:
for lname in utils.UniqueSequence(names):
lock = self.__lockdict[lname] # raises KeyError if lock is not there
acquire_list.append((lname, lock))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment