Re: [PATCH] hashmap: add API to disable item counting when threaded
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Sep 1, 2017, 23:50 UTC
- Message-ID
- <20170901235030.GD143138@aiede.mtv.corp.google.com>
- In-Reply-To
- <alpine.DEB.2.21.1.1709020109520.4132@virtualbox>
Hi,
Johannes Schindelin wrote:
> On Wed, 30 Aug 2017, Jeff Hostetler wrote:
>> This is to address concerns raised by ThreadSanitizer on the mailing >> list about threaded unprotected R/W access to map.size with my previous >> "disallow rehash" change (0607e10009ee4e37cb49b4cec8d28a9dda1656a4).
Nice!
What does the message from TSan look like? (The full message doesn't need to go in the commit message, but a snippet can help.) How can I reproduce it?
Show 20 quoted lines
>> See: >> https://public-inbox.org/git/adb37b70139fd1e2bac18bfd22c8b96683ae18eb.1502780344.git.martin.agren@gmail.com/ >> >> Add API to hashmap to disable item counting and to disable automatic >> rehashing. Also include APIs to re-enable item counting and automatica >> rehashing. >> >> When item counting is disabled, the map.size field is invalid. So to >> prevent accidents, the field has been renamed and an accessor function >> hashmap_get_size() has been added. All direct references to this field >> have been been updated. And the name of the field changed to >> map.private_size to communicate thie. >> >> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> >> --- > > The Git contribution process forces me to point out lines longer than 80 > columns. I wish there was already an automated tool to fix that, but we > (as in "the core Git developers") have not yet managed to agree on one. So > I'll have to ask you to identify and fix them manually.
I *think* (but am not sure) that there is an implied bug report in this comment, but I am not sure what that bug report is and how I can help with it! If you have a link to an issue tracker, thread, wiki page, or other pointer where I can learn more, then that might help me.
Have you experimented with the patches in Junio's branch bw/git-clang-format?
[...]
Show 8 quoted lines
>> + /* TODO Consider counting them and returning that. */
>
> I'd rather not. If counting is disabled, it is disabled.
>
>> + die("hashmap_get_size: size not set");
>
> Before anybody can ask for this message to be wrapped in _(...) to be
> translateable, let me suggest instead to add the prefix "BUG: ".Nowadays (since v2.13.2~26^2~3, 2017-05-12), there is a BUG() function that you can use in place of die():
BUG("hashmap_get_size: size not set");Thanks and hope that helps, Jonathan