extern thread_key_t rpc_call_key;
extern mutex_t tsd_lock;
- if (rpc_call_key == -1) {
+ if (rpc_call_key == KEY_INITIALIZER) {
mutex_lock(&tsd_lock);
- if (rpc_call_key == -1)
+ if (rpc_call_key == KEY_INITIALIZER)
thr_keycreate(&rpc_call_key, rpc_call_destroy);
mutex_unlock(&tsd_lock);
}
pthread_mutex_t tsd_lock = PTHREAD_MUTEX_INITIALIZER;
/* Library global tsd keys */
-thread_key_t clnt_broadcast_key;
-thread_key_t rpc_call_key = -1;
-thread_key_t tcp_key = -1;
-thread_key_t udp_key = -1;
-thread_key_t nc_key = -1;
-thread_key_t rce_key = -1;
+thread_key_t clnt_broadcast_key = KEY_INITIALIZER;
+thread_key_t rpc_call_key = KEY_INITIALIZER;
+thread_key_t tcp_key = KEY_INITIALIZER;
+thread_key_t udp_key = KEY_INITIALIZER;
+thread_key_t nc_key = KEY_INITIALIZER;
+thread_key_t rce_key = KEY_INITIALIZER;
/* xprtlist (svc_generic.c) */
pthread_mutex_t xprtlist_lock = PTHREAD_MUTEX_INITIALIZER;
struct rpc_createerr *rce_addr;
mutex_lock(&tsd_lock);
- if (rce_key == -1)
+ if (rce_key == KEY_INITIALIZER)
thr_keycreate(&rce_key, free);
mutex_unlock(&tsd_lock);
void tsd_key_delete(void)
{
- if (clnt_broadcast_key != -1)
+ if (clnt_broadcast_key != KEY_INITIALIZER)
pthread_key_delete(clnt_broadcast_key);
- if (rpc_call_key != -1)
+ if (rpc_call_key != KEY_INITIALIZER)
pthread_key_delete(rpc_call_key);
- if (tcp_key != -1)
+ if (tcp_key != KEY_INITIALIZER)
pthread_key_delete(tcp_key);
- if (udp_key != -1)
+ if (udp_key != KEY_INITIALIZER)
pthread_key_delete(udp_key);
- if (nc_key != -1)
+ if (nc_key != KEY_INITIALIZER)
pthread_key_delete(nc_key);
- if (rce_key != -1)
+ if (rce_key != KEY_INITIALIZER)
pthread_key_delete(rce_key);
return;
}
extern thread_key_t tcp_key, udp_key;
extern mutex_t tsd_lock;
- if (tcp_key == -1) {
+ if (tcp_key == KEY_INITIALIZER) {
mutex_lock(&tsd_lock);
- if (tcp_key == -1)
+ if (tcp_key == KEY_INITIALIZER)
thr_keycreate(&tcp_key, free);
mutex_unlock(&tsd_lock);
}
netid_tcp = (char *)thr_getspecific(tcp_key);
- if (udp_key == -1) {
+ if (udp_key == KEY_INITIALIZER) {
mutex_lock(&tsd_lock);
- if (udp_key == -1)
+ if (udp_key == KEY_INITIALIZER)
thr_keycreate(&udp_key, free);
mutex_unlock(&tsd_lock);
}
#define once_t pthread_once_t
#define thread_key_t pthread_key_t
+
+#define KEY_INITIALIZER ((thread_key_t)-1)
#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
#define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
#define ONCE_INITIALIZER PTHREAD_ONCE_INIT