From 76f5549068cd79597ce550a8fc8a978522e5d3e7 Mon Sep 17 00:00:00 2001 From: Seth Hoenig Date: Fri, 5 Jun 2026 08:51:51 -0500 Subject: [PATCH] runtime: include halt package for catching shutdown signals --- runtime/halt/callbacks.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 runtime/halt/callbacks.go diff --git a/runtime/halt/callbacks.go b/runtime/halt/callbacks.go new file mode 100644 index 0000000..261c05e --- /dev/null +++ b/runtime/halt/callbacks.go @@ -0,0 +1,22 @@ +package halt + +import ( + "os" + "os/signal" +) + +type Callback func(sig os.Signal) + +func On(f Callback, sigs ...os.Signal) { + c := make(chan os.Signal, 1) + for _, sig := range sigs { + signal.Notify(c, sig) + } + go watch(f, c) +} + +func watch(f Callback, c <-chan os.Signal) { + for sig := range c { + f(sig) + } +}