summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-09-06 12:43:54 +0200
committerMichael Meeks <michael.meeks@suse.com>2012-09-10 11:02:44 +0000
commitda329b8bb04f5d6a5c89afb7f083c7de679d5691 (patch)
tree728b3411f61c59e5f685804264cb4fdb4662a9bc /desktop
parentb87abdf142d23952f83bae0291854e71bf5534da (diff)
deb#681185: wait for InternalIPC::ProcessingDone in oosplash
Change-Id: I9606ec34ad0d8d24dca71d060bf5e1d37152903c (cherry picked from commit 5c804dce946a928adcaf97533f5345b33e688ff5) Reviewed-on: https://gerrit.libreoffice.org/569 Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
Diffstat (limited to 'desktop')
-rw-r--r--desktop/unx/source/start.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
index d1a09a7efd7b..8fe4774ef504 100644
--- a/desktop/unx/source/start.c
+++ b/desktop/unx/source/start.c
@@ -512,6 +512,17 @@ send_args( int fd, rtl_uString *pCwdPath )
nLen = rtl_string_getLength( pOut ) + 1;
bResult = ( write( fd, rtl_string_getStr( pOut ), nLen ) == (ssize_t) nLen );
+ if ( bResult )
+ {
+ char resp[ strlen( "InternalIPC::ProcessingDone" ) ];
+ ssize_t n = read( fd, resp, SAL_N_ELEMENTS( resp ) );
+ bResult = n == (ssize_t) SAL_N_ELEMENTS( resp )
+ && (memcmp(
+ resp, "InternalIPC::ProcessingDone",
+ SAL_N_ELEMENTS( resp ) )
+ == 0);
+ }
+
/* cleanup */
rtl_uString_release( pEscapedCwdPath );
rtl_uString_release( pBuffer );