git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/6] Pass t5530 on Windows

From
Shawn O. Pearce <spearce@spearce.org>
Date
Mar 6, 2010, 21:50 UTC
Message-ID
<20100306215051.GE2529@spearce.org>
In-Reply-To
<7vk4tpdx9x.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
> 
> > Quite frankly, I don't quite know what to do with this series. On the
> > one hand, it is a clean-up, but in practice it is not relevant whether
> > die() kills only the async thread or the whole process because all
> > callers of async die() themselves anyway when the async procedure died.
> > On the other hand, it does enable threaded async procedures on POSIX...
...
Show 6 quoted lines
>    . It must not change the program's state that the caller of the
>      facility also uses.
> 
> And calling die() from async is obviously "change the program's state that
> the caller of the facility also uses".  We didn't uncover this as a bug
> because the above "serious restrictions" go both ways.

I agree with you Junio. I think that any async helper that is invoking die() in its code path is wrong. Just like its also wrong for an async helper to try and use the sha1_file.c family of functions. The helper should return failure and let its caller handle the process termination.

Hell, its even wrong for an async helper to use xmalloc(), because in
a low-memory situation that xmalloc may try to remove pack windows
*without locking*.  _DOUBLE_PLUS_UNGOOD_
 
> If we make threaded-async the default on any platform that is thread
> capable, we would increase the likelihood of catching bugs that violate
> the latter condition.

I'm in favor of that. If we have threaded delta search enabled, we probably can also run these async procedures in a POSIX thread rather than forking off a child. Though on our primary target platform of Linux, the performance difference either way probably cannot be measured.

-- 
Shawn.
Previous: Junio C HamanoNext: Johannes Sixt
Message 3 of 16 in “Pass t5530 on Windows”
  1. 0/6 Pass t5530 on WindowsJohannes Sixt, Mar 6, 2010
  2. Junio C HamanoMar 6, 2010
  3. Shawn O. PearceMar 6, 2010
  4. 7/6 Enable threaded async procedures whenever pthreads is availableJohannes Sixt, Mar 9, 2010
  5. Shawn O. PearceMar 9, 2010
  6. Junio C HamanoMar 10, 2010
  7. Johannes SixtMar 11, 2010
  8. Junio C HamanoMar 12, 2010
  9. Johannes SixtMar 17, 2010
  10. Junio C HamanoMar 17, 2010
  11. Fredrik KuivinenMar 23, 2010
  12. Johannes SixtMar 23, 2010
  13. Johannes SixtMar 23, 2010
  14. Junio C HamanoMar 23, 2010
  15. Johannes SixtMar 23, 2010
  16. Fredrik KuivinenMar 23, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.