code: def release(self):
          
          if self._local.locked:
              while self._queue:
                  future = self._queue.popleft()
                  if not future.done():
                      return future.set_result(None)
              self._local.locked = None
          else:
              raise RuntimeError('release unlocked lock')
docs: Release the lock.
  
          This method should only be called in the locked state;
          it changes the state to unlocked and returns immediately.
          If an attempt is made to release an unlocked lock,
          a RuntimeError will be raised.