def __init__(self, lock=None):
        if lock is None:
            lock = RLock()

        self.__lock = lock
        # Export the lock's acquire() and release() methods
        self.acquire = lock.acquire
        self.release = lock.release

        try:
            self._release_save = lock._release_save
        except __HOLE__:
            pass

        try:
            self._acquire_restore = lock._acquire_restore
        except AttributeError:
            pass

        try:
            self._is_owned = lock._is_owned
        except AttributeError:
            pass

        self.__waiters = []
dataset/ETHPy150Open ooici/pyon/pyon/util/threading.py/Condition.__init__