|
From: | Pantxo Diribarne |
Subject: | [Octave-bug-tracker] [bug #55225] building doc figures in .eps or .pdf format occasionally silently fails |
Date: | Sun, 7 Jun 2020 09:41:00 -0400 (EDT) |
User-agent: | Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0 |
Follow-up Comment #58, bug #55225 (project octave): If this is the first deadlock in a while and it happens in the middle of a test which creates graphics objects ... then I would be astonished if it was not provoked by the changes in cset a379987a74b0. Another way to have a deadlock (apart from the one in comment #56) is if we use a BlockingQueuedConnection to execute a slot in the same thread as the signal [1]. When initializing the qt_graphics_toolkit (in graphics-init.cc) we use QObject::moveToThread to force the thread affinity of the qt_graphics_toolkit, but we don't check it has taken effect at the time we initialize our first Object. >From Qt's doc on QObject::moveToThread [1]: >> A QEvent::ThreadChange event is sent to this object just before the thread affinity is changed. The attached cset makes sure a deadlock due to wrong thread affinity cannot happen, but doesn't fix the fact that the qt_graphics_toolkit may not be ready (attached to the GUI thread) when the first object initialization is requested. [1] https://doc.qt.io/qt-5/qt.html#ConnectionType-enum [2] https://doc.qt.io/qt-5/qobject.html#moveToThread (file #49222) _______________________________________________________ Additional Item Attachment: File name: bug55225-4.patch Size:3 KB <https://savannah.gnu.org/file/bug55225-4.patch?file_id=49222> _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?55225> _______________________________________________ Message posté via Savannah https://savannah.gnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |