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

Reply via email to