idf_monitor: Fix console performance

51e42d8e92
introduced filtering options which handles the last (unterminated) line
with a delay. This introduced poor performance for console applications
when the user interacts with the ESP32 device in the same line because
there is an artificial delay for each key-press.

bb152030a0
decreased the delay but there are still delays for each key-presses.

The current fix makes only one delay per line instead of each
key-presses. When an unterminated line is detected then no more
"delayed" print is used for the given line.

Fixes https://github.com/espressif/esp-idf/issues/2054
This commit is contained in:
Roland Dobai 2018-06-18 12:49:04 +02:00
parent aec8dfdc8e
commit b8937e5522

View file

@ -393,8 +393,8 @@ class Monitor(object):
# default we don't touch it and just wait for the arrival of the rest # default we don't touch it and just wait for the arrival of the rest
# of the line. But after some time when we didn't received it we need # of the line. But after some time when we didn't received it we need
# to make a decision. # to make a decision.
if finalize_line and self._last_line_part != b"": if self._last_line_part != b"":
if self._line_matcher.match(self._last_line_part): if self._force_line_print or (finalize_line and self._line_matcher.match(self._last_line_part)):
self._force_line_print = True; self._force_line_print = True;
if self._output_enabled: if self._output_enabled:
self.console.write_bytes(self._last_line_part) self.console.write_bytes(self._last_line_part)