Eh. I really don't see why it is difficult to read. Although it _is_ error-prone, and also difficult to do further functionality extension. BTW, if we want to generalize the clean_xxx_on_signal, how should we deal with the exception I mentioned before(function named cleanup_children in run-command.c which require one argument)? By forcing all clean_xxx take one argument? Also, many books mentioned that we should never use signal() in portable program, use sigaction() instead, but there are plenty of signal() in git. Why should we do so? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html