code: func (p *Pool) Refresh(ctx context.Context) bool {
  	log.LoggerWContext(ctx).Debug("Refreshing pfconfig pool")
  
  	var locked bool
  	var id uint64
  	if locked, id = p.acquireWriteLock(ctx); !locked {
  		return false
  	}
  	log.LoggerWContext(ctx).Debug("Refresh got lock ID", id)
  	defer func(ctx context.Context) {
  		log.LoggerWContext(ctx).Debug("Refresh is releasing lock ID", id)
  		p.lock.Unlock(id)
  	}(ctx)
  
  	p.refreshStructs(ctx)
  	p.refreshRefreshables(ctx)
  	log.LoggerWContext(ctx).Debug("Finished refresh of pfconfig pool")
  	return true
  }
docs: // Refresh all the structs and resources of the pool using the RW lock
  // An attempt to get the RW lock will be done for up to RefreshLockTimeout