tree ab1d8daa7f3e21f91ddcf911d44b5476674f684f
parent b3242a1ee4d16eb05b303f49538748f66e1b8dac
author Brendan Jackman <brendan.jackman@arm.com> 1505911243 +0100
committer Brendan Jackman <brendan.jackman@arm.com> 1505912794 +0100

utils/android: Fix race condition in LogcatMonitor

If you call .start then immediately call .stop, the thread may not
yet have set ._logcat, resulting in an AttributeError.

I initially fixed this by setting _logcat = None in __init__, then putting the
`kill` calls inside `if self._logcat`. The problem with this, as pointed out by
@valschneider, is that we can then have this sequence:

 main thread:                          monitor thread

 stop()                                run()
   if self._logcat:                      .
     # False, don't kill process         .
   join()                                .
                                         self._logcat = <...>

Therefore, just have the stop() method wait until the process is started before
unconditionally killing it.
