code: func (l *Locker) Unlock(name string) error {
  	l.mu.Lock()
  	nameLock, exists := l.locks[name]
  	if !exists {
  		l.mu.Unlock()
  		return ErrNoSuchLock
  	}
  
  	if nameLock.count() == 0 {
  		delete(l.locks, name)
  	}
  	nameLock.Unlock()
  
  	l.mu.Unlock()
  	return nil
  }
docs: // Unlock unlocks the mutex with the given name
  // If the given lock is not being waited on by any other callers, it is deleted