diff options
-rw-r--r-- | src/corelib/serialization/qtextstream_p.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/corelib/serialization/qtextstream_p.h b/src/corelib/serialization/qtextstream_p.h index 7d6889aa70..79643de35d 100644 --- a/src/corelib/serialization/qtextstream_p.h +++ b/src/corelib/serialization/qtextstream_p.h @@ -70,8 +70,13 @@ public: 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; } |