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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to