git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] run-command: new check_command helper
@ 2013-04-07  7:45 Felipe Contreras
  2013-04-07  7:45 ` [PATCH v3 1/2] run-command: add " Felipe Contreras
  2013-04-07  7:45 ` [PATCH v3 2/2] transport-helper: check if remote helper is alive Felipe Contreras
  0 siblings, 2 replies; 19+ messages in thread
From: Felipe Contreras @ 2013-04-07  7:45 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jeff King, Johannes Sixt, Aaron Schrab,
	Clemens Buchacher, David Michael Barr, Florian Achleitner,
	Felipe Contreras

Hi,

This is a reroll to fix the build with NO_PTHREADS, and also a bit of cleanup.

The interdiff:

--- b/run-command.c
+++ a/run-command.c
@@ -226,27 +226,20 @@ static inline void set_cloexec(int fd)
 		fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
 }
 
-static pid_t persistent_waitpid(struct child_process *cmd, pid_t pid, int *status)
-{
-	pid_t waiting;
-
-	if (cmd->last_status.valid) {
-		*status = cmd->last_status.status;
-		return pid;
-	}
-
-	while ((waiting = waitpid(pid, status, 0)) < 0 && errno == EINTR)
-		;	/* nothing */
-	return waiting;
-}
-
 static int wait_or_whine(struct child_process *cmd, pid_t pid, const char *argv0)
 {
 	int status, code = -1;
 	pid_t waiting;
 	int failed_errno = 0;
 
-	waiting = persistent_waitpid(cmd, pid, &status);
+	/* First try the last status from check_command() */
+	if (cmd && cmd->last_status.valid) {
+		status = cmd->last_status.status;
+		waiting = pid;
+	} else {
+		while ((waiting = waitpid(pid, status, 0)) < 0 && errno == EINTR)
+			;	/* nothing */
+	}
 
 	if (waiting < 0) {
 		failed_errno = errno;
@@ -770,7 +763,7 @@ error:
 int finish_async(struct async *async)
 {
 #ifdef NO_PTHREADS
-	return wait_or_whine(cmd, async->pid, "child process");
+	return wait_or_whine(NULL, async->pid, "child process");
 #else
 	void *ret = (void *)(intptr_t)(-1);
 
Felipe Contreras (2):
  run-command: add new check_command helper
  transport-helper: check if remote helper is alive

 git-remote-testgit        | 11 +++++++++++
 run-command.c             | 46 ++++++++++++++++++++++++++++++++++++++++------
 run-command.h             |  5 +++++
 t/t5801-remote-helpers.sh | 19 +++++++++++++++++++
 transport-helper.c        |  8 ++++++++
 5 files changed, 83 insertions(+), 6 deletions(-)

-- 
1.8.2

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-04-08 21:21 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-07  7:45 [PATCH v3 0/2] run-command: new check_command helper Felipe Contreras
2013-04-07  7:45 ` [PATCH v3 1/2] run-command: add " Felipe Contreras
2013-04-07 17:47   ` Junio C Hamano
2013-04-07 17:52   ` Junio C Hamano
2013-04-07  7:45 ` [PATCH v3 2/2] transport-helper: check if remote helper is alive Felipe Contreras
2013-04-07 17:49   ` Junio C Hamano
2013-04-08  0:51   ` Jeff King
2013-04-08  2:03     ` Felipe Contreras
2013-04-08  2:33       ` Jeff King
2013-04-08 14:38         ` Felipe Contreras
2013-04-08 17:43           ` Junio C Hamano
2013-04-08 18:31             ` Felipe Contreras
2013-04-08 18:46               ` Junio C Hamano
2013-04-08 19:08                 ` Felipe Contreras
2013-04-08 21:08                   ` Junio C Hamano
2013-04-08 21:11                     ` Jeff King
2013-04-08 21:21                       ` Junio C Hamano
2013-04-08 18:49               ` Jeff King
2013-04-08 19:15           ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).