diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2016-11-23 17:01:46 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2016-11-24 12:35:29 +0000 |
commit | bdd108cd72e630189c360c5327c480c1d64d55b1 (patch) | |
tree | 684f28bab926bcaf8dd748a8708d88323f13e031 /include/vcl/svapp.hxx | |
parent | e190825b739712ba0c861d74fc1a589c7e94672d (diff) |
tdf#103852 avoid clipboard deadlock
Deallocate the XTransferable object async using AsyncCallback
(that uses Application::PostUserEvent) which executes the
callback in a thread-safe way on the main thread. This avoids
a deadlock at deallocation so that the XTransferable.
Modify AsyncCallback to not hold the SolarMutexGuard because
Application::PostUserEvent is considered thread-safe.
Document Application::PostUserEvent thread-safety
Change-Id: I4237a1cf380e8be66b3eefc393a58bb4853bf4e1
Reviewed-on: https://gerrit.libreoffice.org/31126
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'include/vcl/svapp.hxx')
-rw-r--r-- | include/vcl/svapp.hxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx index 271922495770..9b930b3127d9 100644 --- a/include/vcl/svapp.hxx +++ b/include/vcl/svapp.hxx @@ -776,9 +776,13 @@ public: User events allow for the deferreal of work to later in the main-loop - at idle. + Execution of the deferred work is thread-safe which means all the tasks are executed + serially, so no thread-safety locks between tasks are necessary. + @param rLink Link to event callback function @param pCaller Pointer to data sent to the event by the caller. Optional. @param bReferenceLink If true - hold a VclPtr<> reference on the Link's instance. + Taking the reference is guarded by a SolarMutexGuard. @return the event ID used to post the event. */ |