def release(self):
        """Release the currently held lock.

        In case the current thread holds no lock, a ValueError is thrown."""

        me = currentThread()
        self.__condition.acquire()
        try:
            if self.__writer is me:
                # We are the writer, take one nesting depth away.
                self.__writercount -= 1
                if not self.__writercount:
                    # No more write locks; take our writer position away and
                    # notify waiters of the new circumstances.
                    self.__writer = None
                    self.__condition.notifyAll()
            elif me in self.__readers:
                # We are a reader currently, take one nesting depth away.
                self.__readers[me] -= 1
                if not self.__readers[me]:
                    # No more read locks, take our reader position away.
                    del self.__readers[me]
                    if not self.__readers:
                        # No more readers, notify waiters of the new
                        # circumstances.
                        self.__condition.notifyAll()
            else:
                raise ValueError("Trying to release unheld lock")
        finally:
            self.__condition.release()
def release(self):
        

        me = currentThread()
        self.__condition.acquire()
        try:
            if self.__writer is me:
                
                self.__writercount -= 1
                if not self.__writercount:
                    
                    
                    self.__writer = None
                    self.__condition.notifyAll()
            elif me in self.__readers:
                
                self.__readers[me] -= 1
                if not self.__readers[me]:
                    
                    del self.__readers[me]
                    if not self.__readers:
                        
                        
                        self.__condition.notifyAll()
            else:
                raise ValueError("Trying to release unheld lock")
        finally:
            self.__condition.release()
def release ( self ) : me = currentThread ( ) self . __condition . acquire ( ) try : if self . __writer is me : # We are the writer, take one nesting depth away. self . __writercount -= 1 if not self . __writercount : # No more write locks; take our writer position away and # notify waiters of the new circumstances. self . __writer = None self . __condition . notifyAll ( ) elif me in self . __readers : # We are a reader currently, take one nesting depth away. self . __readers [ me ] -= 1 if not self . __readers [ me ] : # No more read locks, take our reader position away. del self . __readers [ me ] if not self . __readers : # No more readers, notify waiters of the new # circumstances. self . __condition . notifyAll ( ) else : raise ValueError ( "Trying to release unheld lock" ) finally : self . __condition . release ( )
Release the currently held lock.

        In case the current thread holds no lock, a ValueError is thrown.
Release the currently held lock .