Merge branch 'dg/run-command-child-cleanup'

The code to wait for subprocess and remove it from our internal queue
wasn't quite right.

* dg/run-command-child-cleanup:
  run-command.c: fix broken list iteration in clear_child_for_cleanup
This commit is contained in:
Junio C Hamano 2012-09-14 21:39:37 -07:00
Родитель cd14f3e17c bdee397d7c
Коммит 5816cc7ca1
1 изменённых файлов: 7 добавлений и 6 удалений

Просмотреть файл

@ -53,13 +53,14 @@ static void mark_child_for_cleanup(pid_t pid)
static void clear_child_for_cleanup(pid_t pid)
{
struct child_to_clean **last, *p;
struct child_to_clean **pp;
last = &children_to_clean;
for (p = children_to_clean; p; p = p->next) {
if (p->pid == pid) {
*last = p->next;
free(p);
for (pp = &children_to_clean; *pp; pp = &(*pp)->next) {
struct child_to_clean *clean_me = *pp;
if (clean_me->pid == pid) {
*pp = clean_me->next;
free(clean_me);
return;
}
}