code: def thread_safe_client(client, lock=None):
      
      if lock is None:
          lock = threading.Lock()
      return _ThreadSafeProxy(client, lock)
docs: Create a thread-safe proxy which locks every method call
      for the given client.
  
      Args:
          client: the client object to be guarded.
          lock: the lock object that will be used to lock client's methods.
              If None, a new lock will be used.
  
      Returns:
          A thread-safe proxy for the given client.