diff --git a/src/corelib/serialization/qtextstream_p.h b/src/corelib/serialization/qtextstream_p.h index 7d6889aa709..79643de35d1 100644 --- a/src/corelib/serialization/qtextstream_p.h +++ b/src/corelib/serialization/qtextstream_p.h @@ -70,8 +70,13 @@ class QDeviceClosedNotifier : public QObject inline void setupDevice(QTextStream *stream, QIODevice *device) { disconnect(); - if (device) - connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream())); + if (device) { + // Force direct connection here so that QTextStream can be used + // from multiple threads when the application code is handling + // synchronization (see also QTBUG-12055). + connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream()), + Qt::DirectConnection); + } this->stream = stream; }