[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #58403] "uicontextmenu" property is not empty
From: |
Pantxo Diribarne |
Subject: |
[Octave-bug-tracker] [bug #58403] "uicontextmenu" property is not empty immediately after deleting corresponding graphics object |
Date: |
Fri, 22 May 2020 17:03:58 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 |
Follow-up Comment #1, bug #58403 (project octave):
The current workflow is as follows:
1- uicontextmenu object deletion requested
2- notify the gui thread that it should delete the ContextMenu object and
release its reference to the uicontexmenu. Block the interpreter thread until
it's done.
3- delete the last reference to the uicontextmenu held by the gh_manager.
4- handle the uicontextmenu property in the uicontextmenu destructor
But if step 2 fails, the destructor won't get called in time (at all?)
I tried hard to use Qt's blocking connections to have predictable behavior,
but it doesn't look like the correct approach: sometimes invokeMethod will
fail to execute the requested slot and your only choice is to try again (and
implement your own local ugly blocking connection).
The attached patch will probably help in reducing the probability that this
bug happens but is a fig leaf.
This BlockingQueuedConnection method has improved stability, but turns out to
be very slow and is still unpredictable.
(file #49150)
_______________________________________________________
Additional Item Attachment:
File name: bug58403.patch Size:1 KB
<https://savannah.gnu.org/file/bug58403.patch?file_id=49150>
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?58403>
_______________________________________________
Message posté via Savannah
https://savannah.gnu.org/