[Libreoffice-commits] core.git: desktop/source
Andrea Pescetti
pescetti at apache.org
Wed Sep 21 08:13:14 UTC 2016
desktop/source/app/app.cxx | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
New commits:
commit 74ac65c49cc1d53b1aa93c2b7c720255867aace2
Author: Andrea Pescetti <pescetti at apache.org>
Date: Tue Sep 6 19:13:44 2016 +0000
#i114963# Enable IPC before OpenClients to allow client connections when printing.
Patch By: aptitude at btconnect.com
(cherry picked from commit 602bd18953b23b7aa939cc118d2aa7cb24b172be)
Conflicts:
desktop/source/app/app.cxx
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index da825bf..0f039a9 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1931,9 +1931,21 @@ class ExitTimer : public Timer
IMPL_LINK_NOARG_TYPED(Desktop, OpenClients_Impl, void*, void)
{
try {
- OpenClients();
-
+ // #114963#
+ // Enable IPC thread before OpenClients
+ //
+ // This is because it is possible for another client to connect during the OpenClients() call.
+ // This can happen on Windows when document is printed (not opened) and another client wants to print (when printing multiple documents).
+ // If the IPC thread is enabled after OpenClients, then the client will not be processed because the application will exit after printing. i.e RequestHandler::AreRequestsPending() will always return false
+ //
+ // ALSO:
+ //
+ // Multiple clients may request simultaneous connections.
+ // When this server closes down it attempts to recreate the pipe (in RequestHander::Disable()).
+ // It's possible that the client has a pending connection request.
+ // When the IPC thread is not running, this connection locks (because maPipe.accept()) is never called
RequestHandler::SetReady();
+ OpenClients();
CloseSplashScreen();
CheckFirstRun( );
More information about the Libreoffice-commits
mailing list