Call method while holding a lock.

def _synchronized(meth):
    """Call method while holding a lock."""

    @functools.wraps(meth)
    def wrapper(self, *args, **kwargs):
        with self._lock:
            return meth(self, *args, **kwargs)

    return wrapper