diff options
author | Andrea Pescetti <pescetti@apache.org> | 2016-09-06 19:13:44 +0000 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-09-21 10:11:29 +0200 |
commit | 74ac65c49cc1d53b1aa93c2b7c720255867aace2 (patch) | |
tree | ffe99fe73636ecba7fd76d63673c2c5595f6887e /desktop/source | |
parent | 90fd9bdef5ad4254971e68c2174da470ef3822bc (diff) |
#i114963# Enable IPC before OpenClients to allow client connections when printing.
Patch By: aptitude@btconnect.com
(cherry picked from commit 602bd18953b23b7aa939cc118d2aa7cb24b172be)
Conflicts:
desktop/source/app/app.cxx
Diffstat (limited to 'desktop/source')
-rw-r--r-- | desktop/source/app/app.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index da825bf7f2ae..0f039a913ce8 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( ); |