On 9/27/2018 11:21 AM, Ben Peart wrote:


On 9/26/2018 2:54 PM, Derrick Stolee wrote:

GIT_TEST_INDEX_THREADS=1


Because the test repos are so small (ie smaller than 10K files), the test suite already executes as if GIT_TEST_INDEX_THREADS=1 is set (ie single threaded).  I added the test variable so that the multi-threading code could be forced to execute in spite of the default minimum number of files logic.

I'd recommend you set GIT_TEST_INDEX_THREADS=3 instead. (3 because 1 thread is used for loading the index extensions and we need 2 or more threads available to exercise multi-threaded loading of the index entries).

According to t/README, GIT_TEST_INDEX_THREADS is a boolean and setting it to 1 causes us to use 3 threads:

    GIT_TEST_INDEX_THREADS=<boolean> forces multi-threaded loading of
    the index cache entries and extensions for the whole test suite.

Here is the only consumption of the variable in the product code (in read-cache.c):

        /* enable testing with fewer than default minimum of entries */
        if (istate->cache_nr > 1 && nr_threads < 3 && git_env_bool("GIT_TEST_INDEX_THREADS", 0))
                nr_threads = 3;

This was non-obvious to me, and I had originally set it to a larger number. I happened to notice the boolean nature while I was looking up the rest of the GIT_TEST_* variables.

Thanks,

-Stolee


Reply via email to