Home | History | Annotate | Download | only in libpthread
History log of /src/lib/libpthread/pthread_key_create.3
RevisionDateAuthorComments
 1.9  22-Oct-2017  abhinav Add missing function names in the NAME section for rest of the man pages in libpthread
 1.8  29-May-2015  wiz Bump date for previous.
New sentence, new line.
 1.7  29-May-2015  manu Make PTHREAD_KEYS_MAX dynamically adjustable

NetBSD's PTHREAD_KEYS_MAX is set to 256, which is low compared to
other systems like Linux (1024) or MacOS X (512). As a result some
setups tested on Linux will exhibit problems on NetBSD because of
pthread_keys usage beyond the limit. This happens for instance on
Apache with various module loaded, and in this case no particular
developper can be blamed for going beyond the limit, since several
modules from different sources contribute to the problem.

This patch makes the limit conigurable through the PTHREAD_KEYS_MAX
environement variable. If undefined, the default remains unchanged
(256). In any case, the value cannot be lowered below POSIX-mandated
_POSIX_THREAD_KEYS_MAX (128).

While there:
- use EXIT_FAILURE instead of 1 when calling err(3) in libpthread.
- Reset _POSIX_THREAD_KEYS_MAX to POSIX mandated 128, instead of 256.
 1.6  09-Jul-2010  wiz branches: 1.6.24;
Mark up NULL.
 1.5  09-Jul-2010  jruoho Rationalize by moving

pthread_key_delete(3) to pthread_key_create(3); and
pthread_setspecific(3) to pthread_getspecific(3)
 1.4  02-May-2008  martin branches: 1.4.8;
Move TNF licenses to 2 clause form
 1.3  04-Jul-2003  wiz branches: 1.3.32;
Mark up a defined value.
 1.2  08-Jun-2003  thorpej $NetBSD$, not $Header$.
 1.1  03-Jun-2003  nathanw Man pages for libpthread, adapted from FreeBSD by Stephen Degler.
 1.3.32.1  18-May-2008  yamt sync with head.
 1.4.8.2  02-May-2008  martin Move TNF licenses to 2 clause form
 1.4.8.1  02-May-2008  martin file pthread_key_create.3 was added on branch christos-time_t on 2008-05-02 18:11:05 +0000
 1.6.24.1  24-Nov-2015  martin Pull up following revision(s) (requested by manu in ticket #829):
lib/libpthread_dbg/pthread_dbg.c: revision 1.43 (via patch)
lib/libpthread/pthread_int.h: revision 1.91-1.92 (via patch)
lib/libc/stdlib/jemalloc.c: revision 1.37-1.38
lib/libpthread/pthread_tsd.c: revision 1.12-1.14 (via patch)
include/limits.h: revision 1.34 (via patch)
lib/libpthread/pthread.c: revision 1.146-1.147 (via patch)
lib/libpthread/pthread_key_create.3: revision 1.7 (via patch)

libpthread:

Make PTHREAD_KEYS_MAX dynamically adjustable
NetBSD's PTHREAD_KEYS_MAX is set to 256, which is low compared to
other systems like Linux (1024) or MacOS X (512). As a result some
setups tested on Linux will exhibit problems on NetBSD because of
pthread_keys usage beyond the limit. This happens for instance on
Apache with various module loaded, and in this case no particular
developper can be blamed for going beyond the limit, since several
modules from different sources contribute to the problem.
This patch makes the limit conigurable through the PTHREAD_KEYS_MAX
environement variable. If undefined, the default remains unchanged
(256). In any case, the value cannot be lowered below POSIX-mandated
_POSIX_THREAD_KEYS_MAX (128).

While there:
- use EXIT_FAILURE instead of 1 when calling err(3) in libpthread.
- Reset _POSIX_THREAD_KEYS_MAX to POSIX mandated 128, instead of 256.

Fix previous: Can't use calloc/malloc before we complete initialization
of the thread library, because malloc uses pthread_foo_specific, and it will
end up initializing itself incorrectly.

Thanks rump for not letting us use even mmap during initialization.

libc/jemalloc:

Fix non _REENTRANT build.
Defer using pthread keys until we are threaded.
From Christos, fixes PR port-arm/50087 by allowing malloc calls prior
to libpthread initialization.

RSS XML Feed