From e5106342c6de9cbe26c4827e4e29bae309cd8cfb Mon Sep 17 00:00:00 2001 From: Daniel Eischen Date: Wed, 24 Jan 2001 13:03:38 +0000 Subject: Add weak definitions for wrapped system calls. In general: _foo - wrapped system call foo - weak definition to _foo and for cancellation points: _foo - wrapped system call __foo - enter cancellation point, call _foo(), leave cancellation point foo - weak definition to __foo Change use of global _thread_run to call a function to get the currently running thread. Make all pthread_foo functions weak definitions to _pthread_foo, where _pthread_foo is the implementation. This allows an application to provide its own pthread functions. Provide slightly different versions of pthread_mutex_lock and pthread_mutex_init so that we can tell the difference between a libc mutex and an application mutex. Threads holding mutexes internal to libc should never be allowed to exit, call signal handlers, or cancel. Approved by: -arch --- lib/libc_r/uthread/uthread_mutex_protocol.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/libc_r/uthread/uthread_mutex_protocol.c') diff --git a/lib/libc_r/uthread/uthread_mutex_protocol.c b/lib/libc_r/uthread/uthread_mutex_protocol.c index 9847ae529eb8..1ad9b159c354 100644 --- a/lib/libc_r/uthread/uthread_mutex_protocol.c +++ b/lib/libc_r/uthread/uthread_mutex_protocol.c @@ -34,12 +34,14 @@ #include #include #include -#ifdef _THREAD_SAFE #include #include "pthread_private.h" +#pragma weak pthread_mutexattr_getprotocol=_pthread_mutexattr_getprotocol +#pragma weak pthread_mutexattr_setprotocol=_pthread_mutexattr_setprotocol + int -pthread_mutexattr_getprotocol(pthread_mutexattr_t *mattr, int *protocol) +_pthread_mutexattr_getprotocol(pthread_mutexattr_t *mattr, int *protocol) { int ret = 0; @@ -52,7 +54,7 @@ pthread_mutexattr_getprotocol(pthread_mutexattr_t *mattr, int *protocol) } int -pthread_mutexattr_setprotocol(pthread_mutexattr_t *mattr, int protocol) +_pthread_mutexattr_setprotocol(pthread_mutexattr_t *mattr, int protocol) { int ret = 0; @@ -66,4 +68,3 @@ pthread_mutexattr_setprotocol(pthread_mutexattr_t *mattr, int protocol) return(ret); } -#endif -- cgit v1.2.3