Allow connectConsole to be called.

disconnectConsole is called if an EIO error is called to prevent
Seer going to 100% cpu.
This commit is contained in:
Ernie Pasveer
2022-03-06 17:16:50 -06:00
parent a4026c093a
commit f9cebcb34d
2 changed files with 10 additions and 10 deletions
+8 -8
View File
@@ -1,4 +1,5 @@
#include "SeerConsoleWidget.h"
#include "traceback.h"
#include <QtWidgets/QPlainTextEdit>
#include <QtWidgets/QCheckBox>
#include <QtWidgets/QFileDialog>
@@ -132,10 +133,6 @@ void SeerConsoleWidget::handlePrintButton () {
void SeerConsoleWidget::handleSaveButton () {
/*
QString fname = QFileDialog::getSaveFileName(this, "Seer log file", "", "Logs (*.log);;Text files (*.txt);;All files (*.*)");
*/
QFileDialog dialog(this, "Seer log file", "", "Logs (*.log);;Text files (*.txt);;All files (*.*)");
dialog.setOptions(QFileDialog::DontUseNativeDialog);
dialog.setAcceptMode(QFileDialog::AcceptSave);
@@ -221,9 +218,10 @@ void SeerConsoleWidget::handleConsoleOutput (int socketfd) {
continue;
}
if (errno == EIO) { // Delete console if tty has an I/O error. (Maybe wait instead???)
if (errno == EIO) {
// Disconnect console if tty has an I/O error.
// Can be reconnected later just before gdb restarts it's target program.
disconnectConsole();
deleteConsole();
break;
}
@@ -298,8 +296,10 @@ void SeerConsoleWidget::connectConsole () {
void SeerConsoleWidget::disconnectConsole () {
if (_ptsListener) {
delete _ptsListener;
_ptsListener = 0;
QObject::disconnect(_ptsListener, &QSocketNotifier::activated, this, &SeerConsoleWidget::handleConsoleOutput);
delete _ptsListener; _ptsListener = 0;
}
}