From a10c8aa194ac57c2054e69c633f0f46ec0aa139c Mon Sep 17 00:00:00 2001 From: Ben Hollis Date: Sun, 3 Mar 2013 12:31:42 -0800 Subject: [PATCH] Don't use the logger from a trap context. Fixes #801. --- middleman-core/lib/middleman-core/preview_server.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/middleman-core/lib/middleman-core/preview_server.rb b/middleman-core/lib/middleman-core/preview_server.rb index 41833415..c2506c17 100644 --- a/middleman-core/lib/middleman-core/preview_server.rb +++ b/middleman-core/lib/middleman-core/preview_server.rb @@ -31,6 +31,12 @@ module Middleman ::Middleman::Profiling.report("server_start") @webrick.start + + # $mm_shutdown is set by the signal handler + if $mm_shutdown + shutdown + exit + end end end @@ -118,8 +124,9 @@ module Middleman %w(INT HUP TERM QUIT).each do |sig| if Signal.list[sig] Signal.trap(sig) do - shutdown - exit + # Do as little work as possible in the signal context + $mm_shutdown = true + @webrick.stop end end end