Imported Upstream version 0.2.5
[platform/upstream/libtirpc.git] / src / mt_misc.c
index fe12c31..093086e 100644 (file)
@@ -78,12 +78,12 @@ pthread_mutex_t     svcraw_lock = PTHREAD_MUTEX_INITIALIZER;
 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;
@@ -91,6 +91,15 @@ pthread_mutex_t      xprtlist_lock = PTHREAD_MUTEX_INITIALIZER;
 /* serializes calls to public key routines */
 pthread_mutex_t serialize_pkey = PTHREAD_MUTEX_INITIALIZER;
 
+/* protects global variables ni and nc_file (getnetconfig.c) */
+pthread_mutex_t nc_db_lock = PTHREAD_MUTEX_INITIALIZER;
+
+/* protects static port and startport (bindresvport.c) */
+pthread_mutex_t port_lock = PTHREAD_MUTEX_INITIALIZER;
+
+/* protects static disrupt (clnt_vc.c) */
+pthread_mutex_t disrupt_lock = PTHREAD_MUTEX_INITIALIZER;
+
 #undef rpc_createerr
 
 struct rpc_createerr rpc_createerr;
@@ -101,7 +110,7 @@ __rpc_createerr()
        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);
 
@@ -122,17 +131,17 @@ __rpc_createerr()
 
 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;
 }