Skip to content

Commit caead3f

Browse files
committed
more lock fixes
1 parent 9656a55 commit caead3f

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/cryptojwt/key_bundle.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,14 @@ def ec_init(spec):
151151
return _kb
152152

153153

154+
def keys_reader(func):
155+
def wrapper(self, *args, **kwargs):
156+
with self._lock_reader:
157+
return func(self, *args, **kwargs)
158+
159+
return wrapper
160+
161+
154162
def keys_writer(func):
155163
def wrapper(self, *args, **kwargs):
156164
with self._lock_writer:
@@ -655,6 +663,7 @@ def remove(self, key):
655663
except ValueError:
656664
pass
657665

666+
@keys_reader
658667
def __len__(self):
659668
"""
660669
The number of keys.
@@ -760,8 +769,9 @@ def remove_outdated(self, after, when=0):
760769
return changed
761770

762771
def __contains__(self, key):
763-
return key in self._keys
772+
return key in self.keys()
764773

774+
@keys_reader
765775
def copy(self):
766776
"""
767777
Make deep copy of this KeyBundle
@@ -782,6 +792,7 @@ def copy(self):
782792

783793
return _bundle
784794

795+
@keys_reader
785796
def __iter__(self):
786797
return self._keys.__iter__()
787798

0 commit comments

Comments
 (0)