code: def release(self, n: int) -> None:
      self.value += n
      while self.events:
          n, event = self.events[0]
          if self.value >= n:
              self.events.pop(0)
              self.value -= n
              event.set()
          else:
              break
  
file_path: hail/hail/python/hailtop/aiotools/weighted_semaphore.py
imports: from typing import Optional, Type
  from sortedcontainers import SortedKeyList
  from types import TracebackType
  import asyncio
label_desc: Use image node_id 2 for calling the WeightedSemaphore obj's underlying member method code with example usage: obj.release(n) without return types