diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-12-11 20:21:27 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-12-11 20:21:27 +0000 |
commit | 10e41144596fc9ced40fc349d9ecd099b1c2ea19 (patch) | |
tree | 88ab04e475ff5a4cd889cb082f5760b6e0bf5e4e /ksplashml/main.cpp | |
parent | 4aed2c8219774f5d797760606b8489a92ddc5163 (diff) | |
download | tdebase-10e41144596fc9ced40fc349d9ecd099b1c2ea19.tar.gz tdebase-10e41144596fc9ced40fc349d9ecd099b1c2ea19.zip |
Initial import of Trinity 3.5.11 to kdebase
Extends krandrtray, adds iccconfig kcontrol module, adds run dialog autocomplete and lots of bugfixes
Will need to check for commit warnings and repair as encountered
Also needs full compile test
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1061475 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksplashml/main.cpp')
-rw-r--r-- | ksplashml/main.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ksplashml/main.cpp b/ksplashml/main.cpp index c1208cc3b..2a79723d2 100644 --- a/ksplashml/main.cpp +++ b/ksplashml/main.cpp @@ -54,12 +54,6 @@ int main( int argc, char **argv ) KCmdLineArgs::addCmdLineOptions(options); KCmdLineArgs *arg = KCmdLineArgs::parsedArgs(); - if( arg->isSet( "fork" ) ) - { - if (fork()) - exit(0); - } - if ( !( arg->isSet( "dcop" ) ) ) KApplication::disableAutoDcopRegistration(); else if ( KApplication::dcopClient()->attach() ) @@ -75,6 +69,18 @@ int main( int argc, char **argv ) wndMain.setStartupItemCount( steps ); } + // The position of this fork() matters, fork too early and you risk the + // calls to KSplash::programStarted being missed. Now that wndMain has + // been instantiated it is safe to do this. An earlier version of + // this program had this fork occuring before the instantiation, + // and this led to a race condition where if ksplash lost the race it would + // hang because it would wait for signals that had already been sent + if( arg->isSet( "fork" ) ) + { + if (fork()) + exit(0); + } + app.setMainWidget(&wndMain); app.setTopWidget(&wndMain); return(app.exec()); |