code: def build_synchronize_decorator():
    
    lock = threading.Lock()
  
    def lock_decorator(fn):
  
      @functools.wraps(fn)
      def lock_decorated(*args, **kwargs):
        with lock:
          return fn(*args, **kwargs)
  
      return lock_decorated
  
    return lock_decorator
docs: Returns a decorator which prevents concurrent calls to functions.
  
    Usage:
      synchronized = build_synchronize_decorator()
  
      @synchronized
      def read_value():
        ...
  
      @synchronized
      def write_value(x):
        ...
  
    Returns:
      make_threadsafe (fct): The decorator which lock all functions to which it
        is applied under a same lock