From 8bb0094113fceeb429366db1771b88fe93f967b1 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 23 Feb 2014 22:22:18 -0800 Subject: [PATCH] Avoid locking in trap context --- lib/vagrant/ui.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/vagrant/ui.rb b/lib/vagrant/ui.rb index 3d55cd407..221913492 100644 --- a/lib/vagrant/ui.rb +++ b/lib/vagrant/ui.rb @@ -34,7 +34,14 @@ module Vagrant [:ask, :detail, :warn, :error, :info, :output, :success].each do |method| define_method(method) do |message, *opts| # Log normal console messages - @logger.info { "#{method}: #{message}" } + begin + @logger.info { "#{method}: #{message}" } + rescue ThreadError + # We're being called in a trap-context. Wrap in a thread. + Thread.new do + @logger.info { "#{method}: #{message}" } + end.join + end end end