mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-18 20:11:20 +00:00
fix for leaked file descriptors in daq
This commit is contained in:
parent
cd6babeab1
commit
82fed172d5
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user