More fixes to pty reading.
This commit is contained in:
@@ -207,23 +207,27 @@ class driver(screenDriver):
|
||||
try:
|
||||
settings_manager = self.env["runtime"]["SettingsManager"]
|
||||
|
||||
# Load timeout settings with defaults
|
||||
self.pty_config = {
|
||||
'input_timeout': float(settings_manager.get_setting(
|
||||
'screen', 'ptyInputTimeout', PTYConstants.INPUT_READ_TIMEOUT
|
||||
)),
|
||||
'output_timeout': float(settings_manager.get_setting(
|
||||
'screen', 'ptyOutputTimeout', PTYConstants.OUTPUT_READ_TIMEOUT
|
||||
)),
|
||||
'select_timeout': float(settings_manager.get_setting(
|
||||
'screen', 'ptySelectTimeout', PTYConstants.SELECT_TIMEOUT
|
||||
)),
|
||||
'process_termination_timeout': float(settings_manager.get_setting(
|
||||
'screen', 'ptyProcessTimeout', PTYConstants.PROCESS_TERMINATION_TIMEOUT
|
||||
)),
|
||||
'poll_interval': float(settings_manager.get_setting(
|
||||
'screen', 'ptyPollInterval', PTYConstants.MIN_POLL_INTERVAL
|
||||
))
|
||||
'input_timeout': self._get_optional_float_setting(
|
||||
settings_manager, 'screen', 'ptyInputTimeout',
|
||||
PTYConstants.INPUT_READ_TIMEOUT
|
||||
),
|
||||
'output_timeout': self._get_optional_float_setting(
|
||||
settings_manager, 'screen', 'ptyOutputTimeout',
|
||||
PTYConstants.OUTPUT_READ_TIMEOUT
|
||||
),
|
||||
'select_timeout': self._get_optional_float_setting(
|
||||
settings_manager, 'screen', 'ptySelectTimeout',
|
||||
PTYConstants.SELECT_TIMEOUT
|
||||
),
|
||||
'process_termination_timeout': self._get_optional_float_setting(
|
||||
settings_manager, 'screen', 'ptyProcessTimeout',
|
||||
PTYConstants.PROCESS_TERMINATION_TIMEOUT
|
||||
),
|
||||
'poll_interval': self._get_optional_float_setting(
|
||||
settings_manager, 'screen', 'ptyPollInterval',
|
||||
PTYConstants.MIN_POLL_INTERVAL
|
||||
)
|
||||
}
|
||||
|
||||
self.env["runtime"]["DebugManager"].write_debug_out(
|
||||
@@ -245,6 +249,17 @@ class driver(screenDriver):
|
||||
'poll_interval': PTYConstants.MIN_POLL_INTERVAL
|
||||
}
|
||||
|
||||
def _get_optional_float_setting(
|
||||
self, settings_manager, section, setting, default
|
||||
):
|
||||
try:
|
||||
value = settings_manager.get_setting(section, setting)
|
||||
if value == "":
|
||||
return default
|
||||
return float(value)
|
||||
except Exception:
|
||||
return default
|
||||
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
self.command = self.env["runtime"]["SettingsManager"].get_setting(
|
||||
|
||||
Reference in New Issue
Block a user