Package backgroundcontext manages the singleton v23 context. This package is not for general use. It it only for packages that (1) need to access a background context, and (2) are used both as a binary and as a shared library (e.g., in R).
Get returns a background context: if a v23 context has been set, it is returned; otherwise the standard Go background context is returned.
Set sets the singleton global context. It should be called at most once, usually immediately after a process starts. Calling Set() multiple times will cause a panic. Thread safe.
T returns the background context set by Set. It panics if Set has not been called yet. Thread safe.
Wrap wraps the provided context, composing it with the defined background context, if any. This allows contexts to be wrapped so that v23 stubs can get the background context's RPC client.
Cancelations are not forwarded: it is assumed that the set background context is never canceled.
BUG: this is very complicated; but it seems required to make vanadium play nicely with contexts defined outside of its universe.