When Go programs end
Michael Knyszek from the Go team joins us to talk about what happens when a program ends. How are file handles cleaned up? When are deferred functions run, and when are they skipped entirely? Is there a way to terminate all running goroutines? Tune in to learn the answers to these questions and more!
Join Changelog++ to support our work, get closer to the metal, and make the ads disappear!
Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
Equinix Metal – Globally interconnected fully automated bare metal. Equinix Metal gives you hardware at your fingertips with physical infrastructure at software speed. This is the promise of the cloud delivered on Bare Metal. Get $500 in free credit to play with plus a rad t-shirt at info.equinixmetal.com/changelog.
- Michael Knyszek – Twitter, GitHub, Website
- Mat Ryer – Twitter, GitHub, LinkedIn, Website
- Jon Calhoun – Twitter, GitHub, Website
Notes and Links
- Make Ctrl+C Cancel the context.Context - An article by Mat Ryer discussing how to capture
ctrl+cand cancel a context.
- NotifyContext proposal - Our very own Mark Bates made the proposal for NotifyContext!
- NotifyContext - docs for the
NotifyContextfunctionality added in Go
- 12 Factor
- Graceful shutdown in Go http server - an article discussing grateful shutdowns with Go HTTP servers.
- kill linux man page -
killis a linux command mentioned on the show
- os/signal - docs for the
os/signalpackage in Go.