On Mon, Nov 09, 2015 at 08:34:27AM -0800, Victor Leschuk wrote:
> > Why don't we leave it at 8, then? That's the conservative choice, and
> > once we have --threads, people can easily experiment with different
> > values and we can follow-up with a change to the default if need be.
>
> I'd propose the following:
>
> if (list.nr || cached) {
> num_threads = 0; /* Can not multi-thread object lookup */
> }
> else if (num_threads < 0 && online_cpus() <= 1) {
> num_threads = 0; /* User didn't set threading option and we have <= 1
> of hardware cores */
> }
OK, so you are presumably initializing:
static int num_threads = -1;
> else if (num_threads == 0) {
> num_threads = GREP_NUM_THREADS_DEFAULT; /* User explicitly choose
> default behavior */
> }
> else if (num_threads < 0) { /* Actually this one should be checked
> earlier so no need to double check here */
> die(_("Ivalid number of threads specified (%d)"), num_threads)
> }
What happens if the user has not specified a value (nr_threads == -1)?
Here you die, but shouldn't you take the default thread value?
I wonder if it would be simpler to just default to 0, and then treat
negative values the same as 0 (which is what pack.threads does). Like:
if (list.nr || cached)
num_threads = 1;
if (!num_threads)
num_threads = GREP_NUM_THREADS_DEFAULT;
and then later, instead of use_threads, do:
if (num_threads <= 1) {
... do single-threaded version ...
} else {
... do multi-threaded version ...
}
That matches the logic in builtin/pack-objects.c.
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html