diff --git a/traitlets/traitlets.py b/traitlets/traitlets.py index d42e5be8..3758ed23 100644 --- a/traitlets/traitlets.py +++ b/traitlets/traitlets.py @@ -654,8 +654,14 @@ def get(self, obj, cls=None): DeprecationWarning, stacklevel=2, ) - with obj.cross_validation_lock: + # Using a context manager has a large runtime overhead, so we + # write out the obj.cross_validation_lock call here. + _cross_validation_lock = obj._cross_validation_lock + try: + obj._cross_validation_lock = True value = self._validate(obj, default) + finally: + obj._cross_validation_lock = _cross_validation_lock obj._trait_values[self.name] = value obj._notify_observers( Bunch(