return nthreads;
}
-
/* Return the default sort size. */
static size_t
default_sort_size (void)
{
- /* Let MEM be available memory or 1/8 of total memory, whichever
- is greater. */
- double avail = physmem_available ();
- double total = physmem_total ();
- double mem = MAX (avail, total / 8);
- struct rlimit rlimit;
-
/* Let SIZE be MEM, but no more than the maximum object size or
system resource limits. Don't bother to check for values like
RLIM_INFINITY since in practice they are not much less than SIZE_MAX. */
size_t size = SIZE_MAX;
+ struct rlimit rlimit;
if (getrlimit (RLIMIT_DATA, &rlimit) == 0 && rlimit.rlim_cur < size)
size = rlimit.rlim_cur;
#ifdef RLIMIT_AS
size = rlimit.rlim_cur / 16 * 15;
#endif
+ /* Let MEM be available memory or 1/8 of total memory, whichever
+ is greater. */
+ double avail = physmem_available ();
+ double total = physmem_total ();
+ double mem = MAX (avail, total / 8);
+
/* Return the minimum of MEM and SIZE, but no less than
MIN_SORT_SIZE. Avoid the MIN macro here, as it is not quite
right when only one argument is floating point. */