<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/run-command.c, branch v1.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2010-06-21T13:02:45Z</updated>
<entry>
<title>Merge branch 'js/async-thread'</title>
<updated>2010-06-21T13:02:45Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-06-21T13:02:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=762655010d6f051f632a77b8c5b95b9f5cad02c9'/>
<id>urn:sha1:762655010d6f051f632a77b8c5b95b9f5cad02c9</id>
<content type='text'>
* js/async-thread:
  fast-import: die_nicely() back to vsnprintf (reverts part of ebaa79f)
  Enable threaded async procedures whenever pthreads is available
  Dying in an async procedure should only exit the thread, not the process.
  Reimplement async procedures using pthreads
  Windows: more pthreads functions
  Fix signature of fcntl() compatibility dummy
  Make report() from usage.c public as vreportf() and use it.
  Modernize t5530-upload-pack-error.

Conflicts:
	http-backend.c
</content>
</entry>
<entry>
<title>start_command: close cmd-&gt;err descriptor when fork/spawn fails</title>
<updated>2010-05-20T23:11:29Z</updated>
<author>
<name>bert Dvornik</name>
<email>dvornik+git@gmail.com</email>
</author>
<published>2010-05-20T18:57:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fc012c2810c237dd2299a3fc85b18c2beb60b730'/>
<id>urn:sha1:fc012c2810c237dd2299a3fc85b18c2beb60b730</id>
<content type='text'>
Fix the problem where the cmd-&gt;err passed into start_command wasn't
being properly closed when certain types of errors occurr.  (Compare
the affected code with the clean shutdown code later in the function.)

On Windows, this problem would be triggered if mingw_spawnvpe()
failed, which would happen if the command to be executed was malformed
(e.g. a text file that didn't start with a #! line).  If cmd-&gt;err was
a pipe, the failure to close it could result in a hang while the other
side was waiting (forever) for either input or pipe close, e.g. while
trying to shove the output into the side band.  On msysGit, this
problem was causing a hang in t5516-fetch-push.

[J6t: With a slight adjustment of the test case, the hang is also
observed on Linux.]

Signed-off-by: bert Dvornik &lt;dvornik+git@gmail.com&gt;
Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jl/maint-submodule-gitfile-awareness'</title>
<updated>2010-04-11T20:54:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-04-11T20:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4553d58f374c6bfcae6b4be528bbf11c18a7efe5'/>
<id>urn:sha1:4553d58f374c6bfcae6b4be528bbf11c18a7efe5</id>
<content type='text'>
* jl/maint-submodule-gitfile-awareness:
  Windows: start_command: Support non-NULL dir in struct child_process
</content>
</entry>
<entry>
<title>Windows: start_command: Support non-NULL dir in struct child_process</title>
<updated>2010-04-11T20:48:46Z</updated>
<author>
<name>Johannes Sixt</name>
<email>j6t@kdbg.org</email>
</author>
<published>2010-04-11T20:40:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f9a2743c3529baab6de650aa3e3eb96de9386fec'/>
<id>urn:sha1:f9a2743c3529baab6de650aa3e3eb96de9386fec</id>
<content type='text'>
A caller of start_command can set the member 'dir' to a directory to
request that the child process starts with that directory as CWD. The first
user of this feature was added recently in eee49b6 (Teach diff --submodule
and status to handle .git files in submodules).

On Windows, we have been lazy and had not implemented support for this
feature, yet. This fixes the shortcoming.

Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Enable threaded async procedures whenever pthreads is available</title>
<updated>2010-03-10T22:26:54Z</updated>
<author>
<name>Johannes Sixt</name>
<email>j6t@kdbg.org</email>
</author>
<published>2010-03-09T20:00:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f6b6098316192475ff0b3fa2ba894d7e555bdfac'/>
<id>urn:sha1:f6b6098316192475ff0b3fa2ba894d7e555bdfac</id>
<content type='text'>
Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mw/maint-gcc-warns-unused-write'</title>
<updated>2010-03-07T20:47:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-03-07T20:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b7e7f6fb0005f861ca8aed80473a9809d646c403'/>
<id>urn:sha1:b7e7f6fb0005f861ca8aed80473a9809d646c403</id>
<content type='text'>
* mw/maint-gcc-warns-unused-write:
  run-command.c: fix build warnings on Ubuntu
</content>
</entry>
<entry>
<title>Dying in an async procedure should only exit the thread, not the process.</title>
<updated>2010-03-07T08:37:36Z</updated>
<author>
<name>Johannes Sixt</name>
<email>j6t@kdbg.org</email>
</author>
<published>2010-03-06T15:40:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0ea1c89ba616397ef7e5f6f601ef7a24d2c27b8e'/>
<id>urn:sha1:0ea1c89ba616397ef7e5f6f601ef7a24d2c27b8e</id>
<content type='text'>
Async procedures are intended as helpers that perform a very restricted
task, and the caller usually has to manage them in a larger context.
Conceptually, the async procedure is not concerned with the "bigger
picture" in whose context it is run. When it dies, it is not supposed
to destroy this "bigger picture", but rather only its own limit view
of the world. On POSIX, the async procedure is run in its own process,
and exiting this process naturally had only these limited effects.

On Windows (or when ASYNC_AS_THREAD is set), calling die() exited the
whole process, destroying the caller (the "big picture") as well.
This fixes it to exit only the thread.

Without ASYNC_AS_THREAD, one particular effect of exiting the async
procedure process is that it automatically closes file descriptors, most
notably the writable end of the pipe that the async procedure writes to.

The async API already requires that the async procedure closes the pipe
ends when it exits normally. But for calls to die() no requirements are
imposed. In the non-threaded case the pipe ends are closed implicitly
by the exiting process, but in the threaded case, the die routine must
take care of closing them.

Now t5530-upload-pack-error.sh passes on Windows.

Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Reimplement async procedures using pthreads</title>
<updated>2010-03-07T08:37:36Z</updated>
<author>
<name>Johannes Sixt</name>
<email>j6t@kdbg.org</email>
</author>
<published>2010-03-06T15:40:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=200a76b74db5c2c75bcf73773cb85c5603ec038e'/>
<id>urn:sha1:200a76b74db5c2c75bcf73773cb85c5603ec038e</id>
<content type='text'>
On Windows, async procedures have always been run in threads, and the
implementation used Windows specific APIs. Rewrite the code to use pthreads.

A new configuration option is introduced so that the threaded implementation
can also be used on POSIX systems. Since this option is intended only as
playground on POSIX, but is mandatory on Windows, the option is not
documented.

One detail is that on POSIX it is necessary to set FD_CLOEXEC on the pipe
handles. On Windows, this is not needed because pipe handles are not
inherited to child processes, and the new calls to set_cloexec() are
effectively no-ops.

Signed-off-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>run-command.c: fix build warnings on Ubuntu</title>
<updated>2010-03-04T06:47:24Z</updated>
<author>
<name>Michael Wookey</name>
<email>michaelwookey@gmail.com</email>
</author>
<published>2010-01-29T22:38:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=90ff12a86073e27c9f423a255a4da4314c28936d'/>
<id>urn:sha1:90ff12a86073e27c9f423a255a4da4314c28936d</id>
<content type='text'>
Building git on Ubuntu 9.10 warns that the return value of write(2)
isn't checked. These warnings were introduced in commits:

  2b541bf8 ("start_command: detect execvp failures early")
  a5487ddf ("start_command: report child process setup errors to the
parent's stderr")

GCC details:

  $ gcc --version
  gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1

Silence the warnings by reading (but not making use of) the return value
of write(2).

Signed-off-by: Michael Wookey &lt;michaelwookey@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sp/maint-push-sideband' into sp/push-sideband</title>
<updated>2010-02-06T05:08:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-02-06T05:08:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=76d44c8cfda9be1db78884580ab045c421b083fe'/>
<id>urn:sha1:76d44c8cfda9be1db78884580ab045c421b083fe</id>
<content type='text'>
* sp/maint-push-sideband:
  receive-pack: Send hook output over side band #2
  receive-pack: Wrap status reports inside side-band-64k
  receive-pack: Refactor how capabilities are shown to the client
  send-pack: demultiplex a sideband stream with status data
  run-command: support custom fd-set in async
  run-command: Allow stderr to be a caller supplied pipe
  Update git fsck --full short description to mention packs

Conflicts:
	run-command.c
</content>
</entry>
</feed>
