Hi, Junio C Hamano wrote: > * bw/forking-and-threading (2017-05-15) 14 commits > - usage.c: drop set_error_handle() > - run-command: restrict PATH search to executable files > - run-command: expose is_executable function > - run-command: block signals between fork and execve > - run-command: add note about forking and threading > - run-command: handle dup2 and close errors in child > - run-command: eliminate calls to error handling functions in child > - run-command: don't die in child when duping /dev/null > - run-command: prepare child environment before forking > - string-list: add string_list_remove function > - run-command: use the async-signal-safe execv instead of execvp > - run-command: prepare command before forking > - t0061: run_command executes scripts without a #! line > - t5550: use write_script to generate post-update hook > > The "run-command" API implementation has been made more robust > against dead-locking in a threaded environment. > > Will merge to 'next'. What's holding this up? The deadlock it fixed was a real, non-theoretical issue. Thanks, Jonathan