Hi Time, > As indicated already, please consider this patch for the next version of > splashy. It replaces the sleep in the script, and only holds up init for > the time necessary (certainly less than 0.5 s and perhaps only 0.1 s) > (attached) Turns out the patch was easier than I expected :-)
> > + /* register signal handlers if we are doing splashy boot */ > + if (g_ascii_strncasecmp (argv[1], "boot", 4) == 0) { > + (void) signal (SIGCHLD, sig_exit_boot); /* this signal is > sent when a child process exits */ > + (void) signal (SIGUSR2, sig_exit_boot); /* this is the > signal sent by _splashy_child indicating directfb is fully initialised */ > + > /* so the parent process can exit, letting init continue. We lock > initramfs from */ > + > /* being unmounted while the child process is still setting up > directfb. */ > + > /* some machines had a race condition causing splashy failure */ > + > /* This fixes bug 505270 */ > + } > + You're messing up the indentation here, presumably because your not mixing tabs and spaces properly (though I don't see any real tabs in the patch..) > @@ -141,6 +177,8 @@ > { > DEBUG_PRINT ("Calling splashy_child_start()"); > splashy_child_start (); > + > + > } > else if (g_ascii_strncasecmp (argv[1], "shutdown", 8) == 0) > { This is a pretty useless hunk :-) > + /* Wait 1s for signal. There are two possible signals. */ > + /* The child may die (splashy failed), or the child process > signals that directfb is setup. */ > + /* If the exit signal does not come in this time, then exit > anyway */ > + /* the signal should come very quickly, so this approach > saves most of a second */ > + > + g_usleep(1000000); /* 1s */ > + g_printerr ("%s", "Error occured : splashy boot > terminated; timed out waiting for splashy to initialise\n"); > + } Perhaps it would be good to increase this sleep interval? On normal operation, the time isn't reached anyway, and on slow computers / boot media it could perhaps take long time. It would be annoying if this bug would be reintroduced just because a particular machine or boot takes a bit longer. How about making it 10s? Also, I would write this as: g_usleep(10*1000*1000) It's a bit clearer IMHO. Gr. Matthijs
signature.asc
Description: Digital signature