I found the `atomicutil` package used throughout the code base, but it
seems to predate the addition of `atomic.Pointer[T]`. Potentially this
should allow us to remove the package altogether and use stdlib directly
instead. But I went ahead with starting with adding simple test cases
first, so that we have better test coverage across the code base.
Also, I added an example of how `atomicutil` usage may be problematic in
some specific scenario compared to how it's implemented with
`atomic.Pointer[T]`. Not to mention, there is some performance gain of
not using the direct casting with its generic support. (Though this is
probably a minor one and the code clarity is a benefit we may want to
keep rather than using other atomic values such as `atomic.Bool`.)
---------
Co-authored-by: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com>
* upgrade to go v1.24
* add a macOS-specific //nolint comment too
---------
Co-authored-by: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com>
* update tracing config definitions
* new tracing system
* performance improvements
* only configure tracing in envoy if it is enabled in pomerium
* [tracing] refactor to use custom extension for trace id editing (#5420)
refactor to use custom extension for trace id editing
* set default tracing sample rate to 1.0
* fix proxy service http middleware
* improve some existing auth related traces
* test fixes
* bump envoyproxy/go-control-plane
* code cleanup
* test fixes
* Fix missing spans for well-known endpoints
* import extension apis from pomerium/envoy-custom