bitbake: knotty: Deal with exceptions not resetting terminal configuration
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 Mar 2014 16:58:01 +0000 (09:58 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 10 Mar 2014 18:09:58 +0000 (11:09 -0700)
When an exception occurred, the terminal parameters (such as echo)
may not be reset correctly. This change ensures they do get
atexit time in all cases, avoiding the terminal corruption issues
that could sometimes occur.

(Bitbake rev: e1d89166f2dfe46412ff9a5610dd57b0cef74fe3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/ui/knotty.py

index c1ee9f5..3dada8e 100644 (file)
@@ -31,6 +31,7 @@ import time
 import fcntl
 import struct
 import copy
+import atexit
 from bb.ui import uihelper
 
 logger = logging.getLogger("BitBake")
@@ -303,6 +304,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
     taskfailures = []
 
     termfilter = tf(main, helper, console, format)
+    atexit.register(termfilter.finish)
 
     while True:
         try:
@@ -536,6 +538,4 @@ def main(server, eventHandler, params, tf = TerminalFilter):
         if return_value == 0:
             return_value = 1
 
-    termfilter.finish()
-
     return return_value