parameters: (self)
docstring: Release a lock, decrementing the recursion level.
  
          If after the decrement it is zero, reset the lock to unlocked (not owned
          by any thread), and if any other threads are blocked waiting for the
          lock to become unlocked, allow exactly one of them to proceed. If after
          the decrement the recursion level is still nonzero, the lock remains
          locked and owned by the calling thread.
  
          Only call this method when the calling thread owns the lock. A
          RuntimeError is raised if this method is called when the lock is
          unlocked.
  
          There is no return value.
docstring_summary: Release a lock, decrementing the recursion level.
docstring_tokens: Release a lock decrementing the recursion level .
function: def release(self):
          """Release a lock, decrementing the recursion level.
  
          If after the decrement it is zero, reset the lock to unlocked (not owned
          by any thread), and if any other threads are blocked waiting for the
          lock to become unlocked, allow exactly one of them to proceed. If after
          the decrement the recursion level is still nonzero, the lock remains
          locked and owned by the calling thread.
  
          Only call this method when the calling thread owns the lock. A
          RuntimeError is raised if this method is called when the lock is
          unlocked.
  
          There is no return value.
  
          """
          if self.__owner != _get_ident():
              raise RuntimeError("cannot release un-acquired lock")
          self.__count = count = self.__count - 1
          if not count:
              self.__owner = None
              self.__block.release()
              if __debug__:
                  self._note("%s.release(): final release", self)
          else:
              if __debug__:
                  self._note("%s.release(): non-final release", self)
function_tokens: def release ( self ) : if self . __owner != _get_ident ( ) : raise RuntimeError ( "cannot release un-acquired lock" ) self . __count = count = self . __count - 1 if not count : self . __owner = None self . __block . release ( ) if __debug__ : self . _note ( "%s.release(): final release" , self ) else : if __debug__ : self . _note ( "%s.release(): non-final release" , self )