From 7df65008be622af9d0db3f23eed54c7a9139c233 Mon Sep 17 00:00:00 2001 From: "Owain G. Ainsworth" Date: Tue, 10 Dec 2013 19:46:32 +0000 Subject: [PATCH] Run interrupt handlers in lifo order. --- signal.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/signal.go b/signal.go index 9afeee61..861ad334 100644 --- a/signal.go +++ b/signal.go @@ -28,7 +28,10 @@ func mainInterruptHandler() { select { case <-interruptChannel: btcdLog.Infof("Received SIGINT (Ctrl+C). Shutting down...") - for _, callback := range interruptCallbacks { + // run handlers in LIFO order. + for i := range interruptCallbacks { + idx := len(interruptCallbacks) -1 -i + callback := interruptCallbacks[idx] callback() }