/usr/share/pyshared/enthought/util/synchronized.py is in python-enthoughtbase 3.1.0-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | """ A decorator for making methods thread-safe via an object-scope lock. """
def synchronized(lock_attribute='_lk'):
""" A factory for decorators for making methods thread-safe. """
def decorator(fn):
""" A decorator for making methods thread-safe. """
def wrapper(self, *args, **kw):
""" The method/function wrapper. """
lock = getattr(self, lock_attribute)
try:
lock.acquire()
result = fn(self, *args, **kw)
finally:
lock.release()
return result
wrapper.__doc__ = fn.__doc__
wrapper.__name__ = fn.__name__
return wrapper
return decorator
#### EOF ######################################################################
|