From 55e7e20a73be977816c0978dafcd0e86122a6729 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 17 Feb 2017 16:47:21 -0800 Subject: [PATCH] Add a check for environmental variable TIPPECANOE_MAX_THREADS --- README.md | 6 ++++++ main.cpp | 9 ++++++++- man/tippecanoe.1 | 4 ++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5162d2f..38bd37f 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,12 @@ resolution is obtained than by using a smaller _maxzoom_ or _detail_. * -pt or --no-tiny-polygon-reduction: Don't combine the area of very small polygons into small squares that represent their combined area. * -q or --quiet: Work quietly instead of reporting progress +Environment +----------- + +Tippecanoe ordinarily uses as many parallel threads as the operating system claims that CPUs are available. +You can override this number by setting the `TIPPECANOE_MAX_THREADS` environmental variable. + Example ------- diff --git a/main.cpp b/main.cpp index 03f1b0d..a666107 100644 --- a/main.cpp +++ b/main.cpp @@ -117,7 +117,14 @@ void checkdisk(struct reader *r, int nreader) { }; void init_cpus() { - CPUS = sysconf(_SC_NPROCESSORS_ONLN); + const char *TIPPECANOE_MAX_THREADS = getenv("TIPPECANOE_MAX_THREADS"); + + if (TIPPECANOE_MAX_THREADS != NULL) { + CPUS = atoi(TIPPECANOE_MAX_THREADS); + } else { + CPUS = sysconf(_SC_NPROCESSORS_ONLN); + } + if (CPUS < 1) { CPUS = 1; } diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index 2c8efba..279681d 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -188,6 +188,10 @@ which may not be what you want. .IP \(bu 2 \-q or \-\-quiet: Work quietly instead of reporting progress .RE +.SH Environment +.PP +Tippecanoe ordinarily uses as many parallel threads as the operating system claims that CPUs are available. +You can override this number by setting the \fB\fCTIPPECANOE_MAX_THREADS\fR environmental variable. .SH Example .PP .RS