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!
Changelog++ members save 4 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
- 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.
Featuring:
- Michael Knyszek – Mastodon, Twitter, GitHub, Website
- Mat Ryer – Twitter, GitHub, LinkedIn, Website
- Jon Calhoun – Twitter, GitHub, Website
Show Notes:
- Make Ctrl+C Cancel the context.Context - An article by Mat Ryer discussing how to capture
ctrl+c
and cancel a context. - NotifyContext proposal - Our very own Mark Bates made the proposal for NotifyContext!
- NotifyContext - docs for the
NotifyContext
functionality added in Go - 12 Factor
- Graceful shutdown in Go http server - an article discussing grateful shutdowns with Go HTTP servers.
- kill linux man page -
kill
is a linux command mentioned on the show - os/signal - docs for the
os/signal
package in Go.
Something missing or broken? PRs welcome!