code: func (h PfssoHandler) spawnSso(ctx context.Context, firewall firewallsso.FirewallSSOInt, info map[string]string, f func(info map[string]string) (bool, error)) {
  	// Perform a copy of the information hash before spawning the goroutine
  	infoCopy := map[string]string{}
  	for k, v := range info {
  		infoCopy[k] = v
  	}
  
  	go func() {
  		defer panichandler.Standard(ctx)
  		sent, err := f(infoCopy)
  		if err != nil {
  			log.LoggerWContext(ctx).Error(fmt.Sprintf("Error while sending SSO to %s: %s"+firewall.GetFirewallSSO(ctx).PfconfigHashNS, err))
  		}
  
  		if sent {
  			log.LoggerWContext(ctx).Debug("Sent SSO to " + firewall.GetFirewallSSO(ctx).PfconfigHashNS)
  		} else {
  			log.LoggerWContext(ctx).Debug("Didn't send SSO to " + firewall.GetFirewallSSO(ctx).PfconfigHashNS)
  		}
  	}()
  }
docs: // Spawn an async SSO request for a specific firewall