Solarmutex Deadlock when Closing Calc which contains functions with XVolatileResult return values

anwen anwenfish at
Wed Aug 1 07:57:00 PDT 2012

Hi Eike,

Thank you for your quick and nice response. I am checking out the events and
classes you recommended. Here is a minor remind that modified() is a method
of XResultListener (not XVolatileResult). It is implemented in Calc by
SCAddInListener class.


Eike Rathke-2 wrote
> Hi anwen,
> On Tuesday, 2012-07-31 08:30:30 -0700, anwen wrote:
>> Eike, I agree with you that the listeners are destroyed during document
>> close. I observed it in my log file. However, the worker thread is
>> running
>> asynchronously if not calling the listeners' modified function. How can
>> it
>> know that the document is closed, stop calling the modified function, and
>> quit itself gracefully. So in the first post, I asked if there is a
>> signal
>> which announces that the document is closed.
> There are two events that could be used, OnPrepareUnload that afair is
> vetoable so your application could finish something it needs the
> document for, and the unconditional OnUnload event. For both events you
> could switch off calling the corresponding modified() when received.
> For general handling see
> However, that's a bit outdated and instead of the deprecated
> XEventBroadcaster and XEventListener the successors
> XDocumentEventBroadcaster and XDocumentEventListener interfaces should
> be used, see
> Still, for the apparent race condition I'd like to see if Calc's
> XVolatileResult::modified() implementation could be changed such that in
> case the corresponding document is in close the mutex isn't attempted to
> be locked anymore.
>> Please correct me if there is something wrong with my thought.
> No, nothing :-)
>   Eike
> -- 
> LibreOffice Calc developer. Number formatter stricken i18n
> transpositionizer.
> GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at .freedesktop

View this message in context:
Sent from the Dev mailing list archive at

More information about the LibreOffice mailing list