From: Steven Luo Date: Mon, 15 Feb 2010 01:28:54 +0000 (-0800) Subject: Install the inotify watch for lockfile creation before forking X-Git-Tag: fremantle-package-3.1-2fremantle4~3 X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=commitdiff_plain;h=c3c41ba1385b47dc2a167e963478779ad5c952fe Install the inotify watch for lockfile creation before forking This avoids the silliness of doing this in both the parent and child process. --- diff --git a/launcher.c b/launcher.c index 33ac536..10ff41b 100644 --- a/launcher.c +++ b/launcher.c @@ -193,10 +193,6 @@ void launch_microb(struct swb_context *ctx, char *uri) { /* Release the osso_browser D-Bus name so that MicroB can take it */ dbus_release_osso_browser_name(ctx); - if ((pid = fork()) == -1) { - perror("fork"); - exit(1); - } #ifdef FREMANTLE /* Put together the path to the MicroB browserd lockfile */ if (!(homedir = getenv("HOME"))) @@ -232,6 +228,11 @@ void launch_microb(struct swb_context *ctx, char *uri) { } free(microb_profile_dir); + if ((pid = fork()) == -1) { + perror("fork"); + exit(1); + } + if (pid > 0) { /* Parent process */ /* Wait for our child to start the browser UI process and @@ -466,6 +467,11 @@ void launch_microb(struct swb_context *ctx, char *uri) { execl("/usr/bin/maemo-invoker", "browser", (char *)NULL); } #else /* !FREMANTLE */ + if ((pid = fork()) == -1) { + perror("fork"); + exit(1); + } + if (pid > 0) { /* Parent process */ waitpid(pid, &status, 0);