vcl::Window::dispose deadlock
Stephan Bergmann
sbergman at redhat.com
Tue Jun 9 01:06:58 PDT 2015
On 06/09/2015 10:02 AM, Noel Grandin wrote:
> On 2015-06-09 09:58 AM, Stephan Bergmann wrote:
>> On Windows, with master as of last night, "make check" happened to run
>> into a deadlock in soffice.bin as below. The
>> main thread is trying to re-acquire the SolarMutex (after a
>> SolarMutexReleaser) from within the event loop, while an
>> incoming URP thread (apparently holding the SolarMutex) does
>> vcl::Window::dispose which, on Windows, blocks on sending a
>> message into the event loop.
>
> Shouldn't something that blocks on sending a message into the event loop
> drop the SolarMutex while it waits for the reply, and then reacquire it
> afterwards?
I'm not sure how this happened to work before introduction of
Window::dispose (which got introduced as part of the VclPtr work, IIUC).
But doing release/re-acquire of the SolarMutex deep down the call
stack has its own perils (and probably creates just as many data races
as it helps work around deadlocks).
More information about the LibreOffice
mailing list