1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-06 02:41:11 +01:00

fix for leaked file descriptors in daq

This commit is contained in:
Vasilis Flouris 2015-04-29 11:41:19 +01:00
parent cd6babeab1
commit 82fed172d5
2 changed files with 12 additions and 2 deletions

View File

@ -675,7 +675,7 @@ class RunConfiguration(object):
def _finalize_device_config(self):
self._load_default_config_if_necessary(self.device)
config = _merge_config_dicts(self._raw_config.get(self.device),
config = _merge_config_dicts(self._raw_config.get(self.device, {}),
self._raw_config.get('device_config', {}),
list_duplicates='all')
self.device_config = config

View File

@ -20,6 +20,7 @@ import os
import sys
import csv
from collections import OrderedDict
from multiprocessing import Process, Queue
from wlauto import Instrument, Parameter
from wlauto.exceptions import ConfigError, InstrumentError
@ -209,7 +210,11 @@ class Daq(Instrument):
def _execute_command(self, command, **kwargs):
# pylint: disable=E1101
result = daq.execute_command(self.server_config, command, **kwargs)
q = Queue()
p = Process(target=_send_daq_command, args=(q, self.server_config, command), kwargs=kwargs)
p.start()
result = q.get()
p.join()
if result.status == daq.Status.OK:
pass # all good
elif result.status == daq.Status.OKISH:
@ -219,3 +224,8 @@ class Daq(Instrument):
else:
raise InstrumentError('DAQ: Unexpected result: {} - {}'.format(result.status, result.message))
return result.data
def _send_daq_command(q, *args, **kwargs):
result = daq.execute_command(*args, **kwargs)
q.put(result)