History log of /netbsd-src/lib/libpthread/pthread_specific.c (Results 1 – 25 of 27)
Revision Date Author Comments
# 568eb77e 10-Apr-2022 riastradh <riastradh@NetBSD.org>

pthread: Nix trailing whitespace.


# 7adb4107 12-Feb-2022 riastradh <riastradh@NetBSD.org>

libpthread: Move namespacing include to top of .c files.

Stuff like libc's namespace.h, or atomic_op_namespace.h, which does
namespacing tricks like `#define atomic_cas_uint _atomic_cas_uint',
has t

libpthread: Move namespacing include to top of .c files.

Stuff like libc's namespace.h, or atomic_op_namespace.h, which does
namespacing tricks like `#define atomic_cas_uint _atomic_cas_uint',
has to go at the top of each .c file. If it goes in the middle, it
might be too late to affect the declarations, and result in compile
errors.

I tripped over this by including <sys/atomic.h> in mips
<machine/lock.h>.

(Maybe we should create a new pthread_namespace.h file for the
purpose, but this'll do for now.)

show more ...


# 71d484f9 21-Mar-2013 christos <christos@NetBSD.org>

- Allow libpthread to be dlopened again, by providing libc stubs to libpthread.
- Fail if the dlopened libpthread does pthread_create(). From manu@
- Discussed at length in the mailing lists; approve

- Allow libpthread to be dlopened again, by providing libc stubs to libpthread.
- Fail if the dlopened libpthread does pthread_create(). From manu@
- Discussed at length in the mailing lists; approved by core@
- This was chosen as the least intrusive patch that will provide
the necessary functionality.
XXX: pullup to 6

show more ...


# 93af5b69 06-Mar-2013 yamt <yamt@NetBSD.org>

add assertions


# 55f47ec3 21-Nov-2012 christos <christos@NetBSD.org>

Replace the simple implementation of pthread_key_{create,destroy}
and pthread_{g,s}etspecific functions, to one that invalidates
values of keys in other threads when pthread_key_delete() is called.
T

Replace the simple implementation of pthread_key_{create,destroy}
and pthread_{g,s}etspecific functions, to one that invalidates
values of keys in other threads when pthread_key_delete() is called.
This fixes chromium, which expects pthread_key_delete() to do
cleanup in all threads.

show more ...


# 426a7619 12-Sep-2012 matt <matt@NetBSD.org>

Only copy the ucontext_t in pthread_setcontext if _UC_TLSBASE is set.
Conditionalize the test on _UC_TLSBASE being defined.


# bba80928 12-Sep-2012 manu <manu@NetBSD.org>

setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha

setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha)
that controlled whether setcontext() would change the TLS pointer.
This change let libpthread override setcontext() with its own version
that unsets _UC_TLSBASE, enabling safe usage of setcontext() with
-lpthread.

We also have the following required changes here:
- rename alpha's _UC_UNIQUE into _UC_TLSBASE
- add _UC_TLSBASE definition in header file for all ports
(powerpc, sh3, sparc and sparc64 lack the implementation for now)
- introduce a libc stub that can be overriden for setcontext()
- modify MD libcs swapcontext() implementations so that they use the
setcontext() libc stub instead of doing a plain system call.

While we are there:
- document various MD _UC_* flags in header file
- add libc and libpthread tests for swapcontext() behavior
(hopefully helpful to spot MD problems introduced with this change)

Future work:
- Deciding whether kernel support or _UC_TLSBASE should be added for
powerpc, sh3, sparc and sparc64 is left to portmasters
sparc64

Approved by core@

show more ...


# edbc7575 23-Jun-2008 ad <ad@NetBSD.org>

pthread_curcpu_np: remove hack for pthread_dummy_lwpctl.


# ce099b40 28-Apr-2008 martin <martin@NetBSD.org>

Remove clause 3 and 4 from TNF licenses


# 783e2f6d 22-Mar-2008 ad <ad@NetBSD.org>

Back out previous. It seems to expose another bug in libpthread/libc,
potentially errno being used before threading is up and running.


# 159f5543 21-Mar-2008 ad <ad@NetBSD.org>

Move pthread__errno() into pthread_specific.c so it gets the "no stack
frame" treatment.


# 6c924f05 08-Jan-2008 christos <christos@NetBSD.org>

cast -1 to unsigned int.


# 48a1e4cf 07-Jan-2008 yamt <yamt@NetBSD.org>

pthread_curcpu_np: map LWPCTL_CPU_NONE to 0 so that this works in the case
of _lwp_ctl failure.


# 37132d5d 07-Dec-2007 ad <ad@NetBSD.org>

Back out previous now that libc/libpthread are initialized first.


# 64ebe139 01-Dec-2007 ad <ad@NetBSD.org>

Hack around ld.so initializing pthread users before libpthread/libc.


# 4084ca7f 27-Nov-2007 ad <ad@NetBSD.org>

Add thr_curcpu(), pthread_curcpu_np().


# 9202b10c 13-Nov-2007 ad <ad@NetBSD.org>

Cosmetic change.


# b8833ff5 16-Aug-2007 ad <ad@NetBSD.org>

- Reinitialize the absolute minimum when recycling user thread state.
Chops another ~10% off create/join in a loop on i386.
- Disable low level debugging as this is stable. Improves benchmarks
ac

- Reinitialize the absolute minimum when recycling user thread state.
Chops another ~10% off create/join in a loop on i386.
- Disable low level debugging as this is stable. Improves benchmarks
across the board by a small percentage. Uncontested mutex acquire
and release in a loop becomes about 8% quicker.
- Minor cleanup.

show more ...


# bd9a18b7 13-Aug-2003 nathanw <nathanw@NetBSD.org>

Split out pthread_{set,get}specific() into a separate file and arrange
for that file to not be built with profiling. This makes it reasonable to
use pthread_{set,get}specific() to implement thread-sa

Split out pthread_{set,get}specific() into a separate file and arrange
for that file to not be built with profiling. This makes it reasonable to
use pthread_{set,get}specific() to implement thread-safe profiline call counts.

show more ...


# 608b92c0 17-Jul-2003 nathanw <nathanw@NetBSD.org>

Don't use PTHREAD_DESTRUCTOR_ITERATIONS; the constant is going away.


# 76907a43 15-May-2003 wiz <wiz@NetBSD.org>

Fix typo in comment.


# a06836c0 15-May-2003 nathanw <nathanw@NetBSD.org>

Remove an unnecessary test in pthread_getspecific().


# f043c0fb 08-Mar-2003 lukem <lukem@NetBSD.org>

add __RCSID()


# ca0eaa6f 15-Feb-2003 nathanw <nathanw@NetBSD.org>

Remove unused #include <assert.h>


# dc651e62 21-Jan-2003 nathanw <nathanw@NetBSD.org>

Don't bother acquiring the tsd_lock and reading the destructor function
if the corresponding TSD entry is empty.

Cuts down lock/unlock pairs for this operation from 256 to the number
of active TSD e

Don't bother acquiring the tsd_lock and reading the destructor function
if the corresponding TSD entry is empty.

Cuts down lock/unlock pairs for this operation from 256 to the number
of active TSD entries; sicne this is done when every thread exits, it saves
many total lock/unlock pairs.

show more ...


12