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

Re: [PATCH 1/3] grep: move grep_source_init outside critical section

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 16, 2018, 19:24 UTC
Message-ID
<xmqqsha068l2.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180215221713.GB23970@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 20 quoted lines
> I think this makes sense. It does blur the memory ownership lines of the
> grep_source, though. Can we make that more clear with a comment here:
>
>> +	grep_source_init(&gs, GREP_SOURCE_OID, pathbuf.buf, path, oid);
>> +
>>  #ifndef NO_PTHREADS
>>  	if (num_threads) {
>> -		add_work(opt, GREP_SOURCE_OID, pathbuf.buf, path, oid);
>> +		add_work(opt, &gs);
>>  		strbuf_release(&pathbuf);
>>  		return 0;
>>  	} else
>
> like:
>
>   /* leak grep_source, whose fields are now owned by add_work() */
>
> or something? We could even memset() it back to all-zeroes to avoid an
> accidental call to grep_source_clear(), but that's probably unnecessary
> if we have a comment.

I share the same uneasiness about the fuzzy memory ownership this change brings in. Thanks for suggesting improvements.

Previous: Jeff KingNext: Rasmus Villemoes
Message 4 of 12 in “a few grep patches”
  1. 0/3 a few grep patchesRasmus Villemoes, Feb 15, 2018
  2. 1/3 grep: move grep_source_init outside critical sectionRasmus Villemoes, Feb 15, 2018
  3. Jeff KingFeb 15, 2018
  4. Junio C HamanoFeb 16, 2018
  5. 3/3 grep: avoid one strdup() per fileRasmus Villemoes, Feb 15, 2018
  6. Jeff KingFeb 15, 2018
  7. 2/3 grep: simplify grep_oid and grep_fileRasmus Villemoes, Feb 15, 2018
  8. Brandon WilliamsFeb 15, 2018
  9. 0/2 two small grep patchesRasmus Villemoes, Feb 23, 2018
  10. 2/2 grep: simplify grep_oid and grep_fileRasmus Villemoes, Feb 23, 2018
  11. 1/2 grep: move grep_source_init outside critical sectionRasmus Villemoes, Feb 23, 2018
  12. Jeff KingFeb 23, 2018

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.