// build -gcflags=-l=4 // Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package p type Interface interface { MonitoredResource() (resType string, labels map[string]string) Done() } func Autodetect(x int) Interface { return func() Interface { func() Interface { x++ Do(func() { var ad, gd Interface go func() { defer gd.Done() ad = aad() }() go func() { defer ad.Done() gd = aad() defer func() { recover() }() }() autoDetected = ad if gd != nil { autoDetected = gd } }) return autoDetected }() return nil }() } var autoDetected Interface var G int type If int func (x If) MonitoredResource() (resType string, labels map[string]string) { return "", nil } //go:noinline func (x If) Done() { G++ } //go:noinline func Do(fn func()) { fn() } //go:noinline func aad() Interface { var x If return x }