Ping Yin schrieb:
This patch disables the auto closing behavious of start_command
and corrects all codes which depend on this kind of behaviour.
I've thought about this a bit more, and I think that it is better to leave
this auto-closing behavior unchanged and change your usage of this feature,
like so:
+static void wt_status_print_submodule_summary(struct wt_status *s)
+{
+ struct child_process sm_summary;
+ memset(&sm_summary, 0, sizeof(sm_summary));
+ ...
+ sm_summary.out = fileno(s->fp);
fflush(s->fp);
sm_summary.out = dup(fileno(s->fp)); /* run_command closes it */
+ ...
+ run_command(&sm_summary);
+}
This way the change is more local without affecting well-tested other callers.
Furthermore, I don't think that it's correct to just set the .close_in or
.close_out flags. This will close the fd only in finish_command(), which can
be too late: Think again of a writable pipe end that remains open and keeps
the reader waiting for input that is not going to happen.
-- Hannes
-
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