diff options
author | Ludovic Courtès <ludo@gnu.org> | 2010-12-07 21:43:04 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2010-12-07 23:13:19 +0100 |
commit | 0f00f2c33a85842a9611ed63f07e915ea9fd60de (patch) | |
tree | a02ec2b230021798eb854693c6c9270c6a1f87e6 /lib/nproc.h | |
parent | cb26e97a88e90d04e6d4efe3de0de92dea53d1e5 (diff) | |
download | guile-0f00f2c33a85842a9611ed63f07e915ea9fd60de.tar.gz |
Use Gnulib's `nproc'.
This updates Gnulib to v0.0-4496-g6491120.
* m4/gnulib-cache.m4: Add `nproc'.
Diffstat (limited to 'lib/nproc.h')
-rw-r--r-- | lib/nproc.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/nproc.h b/lib/nproc.h new file mode 100644 index 000000000..56af19edf --- /dev/null +++ b/lib/nproc.h @@ -0,0 +1,47 @@ +/* Detect the number of processors. + + Copyright (C) 2009, 2010 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Glen Lenker and Bruno Haible. */ + +/* Allow the use in C++ code. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* A "processor" in this context means a thread execution unit, that is either + - an execution core in a (possibly multi-core) chip, in a (possibly multi- + chip) module, in a single computer, or + - a thread execution unit inside a core + (hyper-threading, see <http://en.wikipedia.org/wiki/Hyper-threading>). + Which of the two definitions is used, is unspecified. */ + +enum nproc_query +{ + NPROC_ALL, /* total number of processors */ + NPROC_CURRENT, /* processors available to the current process */ + NPROC_CURRENT_OVERRIDABLE /* likewise, but overridable through the + OMP_NUM_THREADS environment variable */ +}; + +/* Return the total number of processors. The result is guaranteed to + be at least 1. */ +extern unsigned long int num_processors (enum nproc_query query); + +#ifdef __cplusplus +} +#endif /* C++ */ |