Author: pescetti
Date: Tue Sep 6 19:13:44 2016
New Revision: 1759486
URL: http://svn.apache.org/viewvc?rev=1759486&view=rev
Log:
#i114963# Enable IPC before OpenClients to allow client connections when
printing.
Patch By: [email protected]
Modified:
openoffice/trunk/main/desktop/source/app/app.cxx
Modified: openoffice/trunk/main/desktop/source/app/app.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/desktop/source/app/app.cxx?rev=1759486&r1=1759485&r2=1759486&view=diff
==============================================================================
--- openoffice/trunk/main/desktop/source/app/app.cxx (original)
+++ openoffice/trunk/main/desktop/source/app/app.cxx Tue Sep 6 19:13:44 2016
@@ -2533,9 +2533,21 @@ IMPL_LINK( Desktop, OpenClients_Impl, vo
{
RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE -
DesktopOpenClients_Impl()" );
- OpenClients();
-
- OfficeIPCThread::SetReady();
+ // #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();