1
0
mirror of https://github.com/ARM-software/devlib.git synced 2024-10-06 02:40:50 +01:00

AndroidTarget: prevent concurrent invocations of 'logcat -c'

'adb logcat -c' has been observed to fail when called twice concurrently. Rather
than requiring all devlib users to fix their usage patterns, let's just delay
whenever clear_logcat is called twice.
This commit is contained in:
Brendan Jackman 2017-10-09 17:08:38 +01:00
parent 7e073c1fce
commit 8a0554faab

View File

@ -952,6 +952,7 @@ class AndroidTarget(Target):
shell_prompt=shell_prompt,
conn_cls=conn_cls)
self.package_data_directory = package_data_directory
self.clear_logcat_lock = threading.Lock()
def reset(self, fastboot=False): # pylint: disable=arguments-differ
try:
@ -1184,7 +1185,8 @@ class AndroidTarget(Target):
adb_command(self.adb_name, command, timeout=timeout)
def clear_logcat(self):
adb_command(self.adb_name, 'logcat -c', timeout=30)
with self.clear_logcat_lock:
adb_command(self.adb_name, 'logcat -c', timeout=30)
def get_logcat_monitor(self, regexps=None):
return LogcatMonitor(self, regexps)