class_docstr: Concurrent event loop context.
  
  Args:
      concurrency: max processing concurrency.
docstr: Wait for all pending tasks to be finished.
docstr_tok: ["Wait","for","all","pending","tasks","to","be","finished","."]
code: def wait_all(self):
      r"""Wait for all pending tasks to be finished."""
      for _ in range(self._concurrency):
          self._sem.acquire()
      for _ in range(self._concurrency):
          self._sem.release()
  
file_path: pytorch_geometric/torch_geometric/distributed/event_loop.py
imports: import asyncio
  import atexit
  import logging
  from threading import BoundedSemaphore, Thread
  from typing import Callable, Optional
  import torch
label_desc: Use image node_id 3 for calling the ConcurrentEventLoop obj's underlying member method code with example usage: obj.wait_all() without return types