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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html