https://bugs.documentfoundation.org/show_bug.cgi?id=99784
--- Comment #53 from Michael Meeks <[email protected]> ---
Soo - looking at the code quickly which is in:
desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx
It -looks- strongly as if this is some threaded use of VCL that is assuming
that things are thread-safe that are not:
void ProgressCmdEnv::progressSection( const OUString &rText,
const uno::Reference< task::XAbortChannel
> &xAbortChannel )
{
m_xAbortChannel = xAbortChannel;
m_nCurrentProgress = 0;
if ( m_pDialogHelper )
{
m_pDialogHelper->updateProgress( rText, xAbortChannel );
m_pDialogHelper->updateProgress( 5 );
}
}
Which does all manner of dodgy stuff like:
DialogHelper::PostUserEvent( LINK( this, UpdateRequiredDialog,
startProgress ), reinterpret_cast<void*>(bStart) );
which ultimately does:
m_nEventID = Application::PostUserEvent( rLink, pCaller, true/*bReferenceLink*/
)
Which does some somewhat 'optimistic' code around in Application::PostUserEvent
- which may well deadlock; it requires the SolarMutex for this case.
Looks like another instance of people assuming that the vcl main-loop and event
posting is thread-safe.
Still - there are so few events, and so little going on this is unlikely to be
the cause of the issue.
I imagine that PostUserEvent is (somehow) not working nicely on Mac when called
from a different thread in this case - but impossible to debug without a mac.
--
You are receiving this mail because:
You are the assignee for the bug._______________________________________________
Libreoffice-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs