desktop/source/app/app.cxx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
New commits: commit 602bd18953b23b7aa939cc118d2aa7cb24b172be Author: Andrea Pescetti <pesce...@apache.org> Date: Tue Sep 6 19:13:44 2016 +0000 #i114963# Enable IPC before OpenClients to allow client connections when printing. Patch By: aptit...@btconnect.com diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index c3b4dc9..3210426 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -2533,9 +2533,21 @@ IMPL_LINK( Desktop, OpenClients_Impl, void*, EMPTYARG ) { RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE - DesktopOpenClients_Impl()" ); - 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 OfficeIPCThread::AreRequestsPending() will always return false + // + // ALSO: + // + // Multiple clients may request simultaneous connections. + // When this server closes down it attempts to recreate the pipe (in DisableOfficeIPCThread()). + // 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 OfficeIPCThread::SetReady(); + OpenClients(); // CloseStartupScreen(); CloseSplashScreen(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits