From 8f294c055eab508ab489971e04fa45547cee22b1 Mon Sep 17 00:00:00 2001 From: Glenn Sarti Date: Mon, 28 Nov 2016 15:14:39 -0800 Subject: [PATCH] (maint) Enable Ctrl-C to kill all threads in developer environment Previously, if you ran the vpooler via ruby, pressing Ctrl-C would terminate the Webserver however the PoolManager does not have a handler and would instead just keep executing. This commit adds a global Ctrl-C hook which terminates both the api and manager threads. This behaviour will only be enabled if the `VMPOOLER_DEBUG` environment variable exists so that it does not affect VMPooler when running in production environments. --- vmpooler | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vmpooler b/vmpooler index 20eba53..fd8d557 100755 --- a/vmpooler +++ b/vmpooler @@ -26,4 +26,11 @@ manager = Thread.new { ).execute! } +if ENV['VMPOOLER_DEBUG'] + trap("INT") { + puts "Shutting down." + [api, manager].each { |t| t.exit } + } +end + [api, manager].each { |t| t.join }