octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #55225] building doc figures in .eps or .pdf f


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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]