diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index e75a6841ef..693b129d4f 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -46,6 +46,7 @@ def main rescue Exception => e unless error_pipe.nil? e.continuation = nil if ARGV.debug? + error_pipe.flush Marshal.dump(e, error_pipe) error_pipe.close exit! 1 diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index c0348fe51a..5612815e5c 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -371,6 +371,7 @@ class FormulaInstaller read.close exec(*args) rescue Exception => e + write.flush Marshal.dump(e, write) write.close exit! 1 @@ -378,6 +379,7 @@ class FormulaInstaller end ignore_interrupts(:quietly) do # the fork will receive the interrupt and marshall it back + write.flush write.close Process.wait data = read.read