Resolve vanadium/issues#776

Refactors the code around the address chooser in the static and roaming
runtime factories so that initialization doesn't block on detecting
whether the process is running on an AWS EC2 instance or not.

This is only a cosmetic fix to the problem, it parallelizes the
detection with other operations but will block again if
AddressChooser.Choose is called - typically when servers have
started and are ready to mount themselves. So, I consider this
a hacky fix.

This change also introduces a behavioral change in the roaming runtime
factory:
When running a process compiled with the roaming runtime factory on
GCE/AWS, the pubsub channels for communicating address changes are now
initialized. Prior to this patch, when running in GCE/AWS, the roaming
profile was exactly equivalent to the static profile. I'm hoping this
change isn't a big deal? We should probably get rid of the static
profile anyway - why bother when roaming seems strictly superior?

Change-Id: I0796caf8f48a744c024a00b3e31f00c5a3f555b5
3 files changed
tree: 1ba364a600ccbe68d09d2334ed7ba1e89dd58dca
  1. cmd/
  2. examples/
  3. internal/
  4. lib/
  5. runtime/
  6. services/
  7. test/
  8. .gitignore
  9. AUTHORS
  10. CONTRIBUTING.md
  11. CONTRIBUTORS
  12. envvar.go
  13. envvar_test.go
  14. LICENSE
  15. PATENTS
  16. README.md
  17. VERSION
README.md

Vanadium

This repository contains a reference implementation of the Vanadium APIs.

Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.