summaryrefslogtreecommitdiff
path: root/src/sort.c
diff options
context:
space:
mode:
authorBernhard Voelker <mail@bernhard-voelker.de>2012-06-20 07:57:31 +0200
committerJim Meyering <meyering@redhat.com>2012-06-20 08:12:17 +0200
commitdaab10d9f58d62af896d6b33d06e0d4998f2f114 (patch)
treec4577b55a38049c03d61b7548cc6eab0d157fffe /src/sort.c
parent5c2181c870f4bc1abaee8ffd0b088ab05f87a61c (diff)
downloadcoreutils-daab10d9f58d62af896d6b33d06e0d4998f2f114.tar.xz
maint: sort: style adjustment to help clarify size determination
* src/sort.c (default_sort_size): Move physmem code "down" to first use.
Diffstat (limited to 'src/sort.c')
-rw-r--r--src/sort.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/sort.c b/src/sort.c
index 2593a2a6e..5a48ce6f0 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -1400,22 +1400,15 @@ specify_nthreads (int oi, char c, char const *s)
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
@@ -1434,6 +1427,12 @@ default_sort_size (void)
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. */