Final batch of pty driver fixes... For now.
This commit is contained in:
@ -30,6 +30,7 @@ class PTYConstants:
|
||||
# Timeouts (in seconds)
|
||||
DEFAULT_READ_TIMEOUT = 0.3
|
||||
INPUT_READ_TIMEOUT = 0.01
|
||||
OUTPUT_READ_TIMEOUT = 0.05 # Faster than default but allows for network lag
|
||||
SELECT_TIMEOUT = 0.05
|
||||
PROCESS_TERMINATION_TIMEOUT = 3.0
|
||||
PROCESS_KILL_DELAY = 0.5
|
||||
@ -211,6 +212,9 @@ class driver(screenDriver):
|
||||
'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
|
||||
)),
|
||||
@ -235,6 +239,7 @@ class driver(screenDriver):
|
||||
)
|
||||
self.pty_config = {
|
||||
'input_timeout': PTYConstants.INPUT_READ_TIMEOUT,
|
||||
'output_timeout': PTYConstants.OUTPUT_READ_TIMEOUT,
|
||||
'select_timeout': PTYConstants.SELECT_TIMEOUT,
|
||||
'process_termination_timeout': PTYConstants.PROCESS_TERMINATION_TIMEOUT,
|
||||
'poll_interval': PTYConstants.MIN_POLL_INTERVAL
|
||||
@ -427,7 +432,9 @@ class driver(screenDriver):
|
||||
if self.p_out in r:
|
||||
try:
|
||||
msg_bytes = self.read_all(
|
||||
self.p_out.fileno(), interruptFd=sys.stdin.fileno()
|
||||
self.p_out.fileno(),
|
||||
timeout=self.pty_config.get('output_timeout', PTYConstants.OUTPUT_READ_TIMEOUT),
|
||||
interruptFd=sys.stdin.fileno()
|
||||
)
|
||||
except (EOFError, OSError):
|
||||
event_queue.put(
|
||||
|
Reference in New Issue
Block a user