summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/thread/thr_cond.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2003-05-30 00:21:52 +0000
committerkan <kan@FreeBSD.org>2003-05-30 00:21:52 +0000
commita22cad65ccb9cfd81c057db83cc2c7c2cb5ae79d (patch)
tree94d7f73e2932ac623f1590991875a38731aca104 /lib/libpthread/thread/thr_cond.c
parent51dd2dd2b3fe2cc5a81d2a41ffc4166698a4b22f (diff)
downloadFreeBSD-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.c8
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)
{
OpenPOWER on IntegriCloud