code: def acquire(self, blocking=True):
      with self._inner_lock:
          lock_acquired = self._lock.acquire(False)
          if lock_acquired:
              return True
          elif not blocking:
              return False
  
          release_event = threading.Event()
          self._pending_threads.append(release_event)
  
      release_event.wait()
      return self._lock.acquire()
  
imports: import threading
  import collections
label_desc: Use image node_id 2 for calling the FIFOLock obj's underlying member method code with example usage: obj.acquire(blocking) and returns: self, True, False