diff options
author | kan <kan@FreeBSD.org> | 2003-05-30 00:21:52 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-05-30 00:21:52 +0000 |
commit | a22cad65ccb9cfd81c057db83cc2c7c2cb5ae79d (patch) | |
tree | 94d7f73e2932ac623f1590991875a38731aca104 /lib/libpthread/thread/thr_cond.c | |
parent | 51dd2dd2b3fe2cc5a81d2a41ffc4166698a4b22f (diff) | |
download | FreeBSD-src-a22cad65ccb9cfd81c057db83cc2c7c2cb5ae79d.zip FreeBSD-src-a22cad65ccb9cfd81c057db83cc2c7c2cb5ae79d.tar.gz |
Attempt to eliminate PLT relocations from rwlock aquire/release
path, making them suitable for direct use by the dynamic loader.
Register libpthread-specific locking API with rtld on startup.
This still has some rough edges with signals which should be
addresses later.
Approved by: re (scottl)
Diffstat (limited to 'lib/libpthread/thread/thr_cond.c')
-rw-r--r-- | lib/libpthread/thread/thr_cond.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/libpthread/thread/thr_cond.c b/lib/libpthread/thread/thr_cond.c index c71a1ea..8bf49bc 100644 --- a/lib/libpthread/thread/thr_cond.c +++ b/lib/libpthread/thread/thr_cond.c @@ -355,6 +355,8 @@ _pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) return (rval); } +__strong_reference(_pthread_cond_wait, _thr_cond_wait); + int __pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) { @@ -632,6 +634,8 @@ _pthread_cond_signal(pthread_cond_t * cond) return (rval); } +__strong_reference(_pthread_cond_signal, _thr_cond_signal); + int _pthread_cond_broadcast(pthread_cond_t * cond) { @@ -673,7 +677,7 @@ _pthread_cond_broadcast(pthread_cond_t * cond) /* There are no more waiting threads: */ (*cond)->c_mutex = NULL; break; - + /* Trap invalid condition variable types: */ default: /* Return an invalid argument error: */ @@ -689,6 +693,8 @@ _pthread_cond_broadcast(pthread_cond_t * cond) return (rval); } +__strong_reference(_pthread_cond_broadcast, _thr_cond_broadcast); + void _cond_wait_backout(struct pthread *curthread) { |