code: func (p *Pool) AddStruct(ctx context.Context, s interface{}) {
  	id, err := p.lock.Lock()
  	if err == nil {
  		defer p.lock.Unlock(id)
  
  		addr := fmt.Sprintf("%p", s)
  		log.LoggerWContext(ctx).Debug("Adding struct with address " + addr + " to the pool")
  
  		p.structs[addr] = s
  		p.refreshStruct(ctx, s)
  	}
  }
docs: // Add a struct to the pool
  // Requires the RW lock and will not timeout like Refresh does