diff mbox

[U-Boot,v3,4/7] tools/genboardscfg.py: wait for unfinished subprocesses before error-out

Message ID 1408937988-19923-5-git-send-email-yamada.m@jp.panasonic.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Aug. 25, 2014, 3:39 a.m. UTC
When an error occurs or the program is terminated by the user
on the way, the destructer __del__ of class Slot is invoked and
the work directories are removed.

We have to make sure there are no subprocesses (in this case,
"make O=<work_dir> ...") using the work directories before
removing them.  Otherwise the subprocess spits a bunch of error
messages possibly causing more problems.  Perhaps some users
may get upset to see too many error messages.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Simon Glass <sjg@chromium.org>
---

Changes in v3: None
Changes in v2: None

 tools/genboardscfg.py | 3 +++
 1 file changed, 3 insertions(+)

Comments

Tom Rini Aug. 29, 2014, 2:41 p.m. UTC | #1
On Mon, Aug 25, 2014 at 12:39:45PM +0900, Masahiro Yamada wrote:

> When an error occurs or the program is terminated by the user
> on the way, the destructer __del__ of class Slot is invoked and
> the work directories are removed.
> 
> We have to make sure there are no subprocesses (in this case,
> "make O=<work_dir> ...") using the work directories before
> removing them.  Otherwise the subprocess spits a bunch of error
> messages possibly causing more problems.  Perhaps some users
> may get upset to see too many error messages.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Acked-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/tools/genboardscfg.py b/tools/genboardscfg.py
index 722b316..67d450f 100755
--- a/tools/genboardscfg.py
+++ b/tools/genboardscfg.py
@@ -276,6 +276,9 @@  class Slot:
 
     def __del__(self):
         """Delete the working directory"""
+        if not self.occupied:
+            while self.ps.poll() == None:
+                pass
         shutil.rmtree(self.build_dir)
 
     def add(self, defconfig):