View | Details | Raw Unified | Return to issue 114963
Collapse All | Expand All

(-)main/desktop/source/app/app.cxx (-3 / +15 lines)
Lines 2533-2542 Link Here
2533
{
2533
{
2534
    RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE - DesktopOpenClients_Impl()" );
2534
    RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE - DesktopOpenClients_Impl()" );
2535
2535
2536
    OpenClients();
2536
	// #114963#
2537
	// Enable IPC thread before OpenClients
2538
	//
2539
	// This is because it is possible for another client to connect during the OpenClients() call.
2540
	// This can happen on Windows when document is printed (not opened) and another client wants to print (when printing multiple documents).
2541
	// 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
2542
	//
2543
	// ALSO:
2544
	//
2545
	// Multiple clients may request simultaneous connections.
2546
	// When this server closes down it attempts to recreate the pipe (in DisableOfficeIPCThread()).
2547
	// It's possible that the client has a pending connection request.
2548
	// When the IPC thread is not running, this connection locks (because maPipe.accept()) is never called
2549
	OfficeIPCThread::SetReady();
2550
	OpenClients();
2537
2551
2538
    OfficeIPCThread::SetReady();
2539
2540
    // CloseStartupScreen();
2552
    // CloseStartupScreen();
2541
    CloseSplashScreen();
2553
    CloseSplashScreen();
2542
    CheckFirstRun( );
2554
    CheckFirstRun( );

Return to issue 114963