async 552 builtin/receive-pack.c struct async muxer; async 1556 builtin/receive-pack.c struct async muxer; async 395 convert.c struct async async; async 404 convert.c memset(&async, 0, sizeof(async)); async 405 convert.c async.proc = filter_buffer_or_fd; async 406 convert.c async.data = ¶ms; async 407 convert.c async.out = -1; async 415 convert.c if (start_async(&async)) async 418 convert.c if (strbuf_read(&nbuf, async.out, len) < 0) { async 422 convert.c if (close(async.out)) { async 426 convert.c if (finish_async(&async)) { async 683 fetch-pack.c struct async demux; async 598 run-command.c struct async *async = data; async 601 run-command.c pthread_setspecific(async_key, async); async 602 run-command.c ret = async->proc(async->proc_in, async->proc_out, async->data); async 611 run-command.c struct async *async = pthread_getspecific(async_key); async 612 run-command.c if (async->proc_in >= 0) async 613 run-command.c close(async->proc_in); async 614 run-command.c if (async->proc_out >= 0) async 615 run-command.c close(async->proc_out); async 670 run-command.c int start_async(struct async *async) async 676 run-command.c need_in = async->in < 0; async 679 run-command.c if (async->out > 0) async 680 run-command.c close(async->out); async 683 run-command.c async->in = fdin[1]; async 686 run-command.c need_out = async->out < 0; async 691 run-command.c else if (async->in) async 692 run-command.c close(async->in); async 695 run-command.c async->out = fdout[0]; async 700 run-command.c else if (async->in) async 701 run-command.c proc_in = async->in; async 707 run-command.c else if (async->out) async 708 run-command.c proc_out = async->out; async 716 run-command.c async->pid = fork(); async 717 run-command.c if (async->pid < 0) { async 721 run-command.c if (!async->pid) { async 727 run-command.c exit(!!async->proc(proc_in, proc_out, async->data)); async 730 run-command.c mark_child_for_cleanup(async->pid); async 734 run-command.c else if (async->in) async 735 run-command.c close(async->in); async 739 run-command.c else if (async->out) async 740 run-command.c close(async->out); async 759 run-command.c async->proc_in = proc_in; async 760 run-command.c async->proc_out = proc_out; async 762 run-command.c int err = pthread_create(&async->tid, NULL, run_thread, async); async 774 run-command.c else if (async->in) async 775 run-command.c close(async->in); async 779 run-command.c else if (async->out) async 780 run-command.c close(async->out); async 784 run-command.c int finish_async(struct async *async) async 787 run-command.c return wait_or_whine(async->pid, "child process", 0); async 791 run-command.c if (pthread_join(async->tid, &ret)) async 121 run-command.h int start_async(struct async *async); async 122 run-command.h int finish_async(struct async *async); async 376 send-pack.c struct async demux;