From cbf154b4ffb6ef367f05007ca1d6459f78c378b5 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Sun, 15 May 2005 18:26:50 +0000 Subject: [PATCH] Fixed Synchronized to allow synchronization of methods not defined in the current class. --- src/utils/python.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/utils/python.py b/src/utils/python.py index 0aff2e279..786bb6aba 100644 --- a/src/utils/python.py +++ b/src/utils/python.py @@ -75,7 +75,12 @@ class Synchronized(type): self._Synchronized_rlock.release() return changeFunctionName(g, f.func_name, f.__doc__) for attr in dict['__synchronized__']: - dict[attr] = synchronized(dict[attr]) + if attr in dict: + dict[attr] = synchronized(dict[attr]) + else: + def f(self, *args, **kwargs): + getattr(super(newclass, self), attr)(args, kwargs) + dict[attr] = synchronized(changeFunctionName(f, attr)) original__init__ = dict.get('__init__') def __init__(self, *args, **kwargs): if not hasattr(self, '_Synchronized_rlock'):