gui: ipcworker,ipcserver: Refactor

Crashes were observed, faulting in libQtNetwork.
Those were rather rare. We also have no traces.

Probably depends on some order signal/slots were
processed. Remove shared states between connections,
such as the IPCPreviewWorker and socket instance in IPCServer.
This commit is contained in:
2022-08-27 10:21:58 +02:00
parent 10d61acbd0
commit 47874b3706
4 changed files with 63 additions and 27 deletions

View File

@ -11,13 +11,21 @@ class IPCPreviewWorker : public QObject
Q_OBJECT
private:
QFutureWatcher<QByteArray> previewWorkerWatcher;
QLocalSocket *peer;
bool cleaned = false;
public:
IPCPreviewWorker();
void start(RenderConfig config, const QVector<RenderTarget> &targets, QLocalSocket *peer);
IPCPreviewWorker(QLocalSocket *peer);
void start(RenderConfig config, const QVector<RenderTarget> &targets);
void stop();
~IPCPreviewWorker()
{
delete this->peer;
}
private slots:
void shutdownSocket();
signals:
void previewGenerated(QByteArray);
void finished();
};