svn commit: r262221 - in stable: 8/lib/libthr/thread 9/lib/libthr/thread

John Baldwin jhb at FreeBSD.org
Wed Feb 19 15:00:56 UTC 2014


Author: jhb
Date: Wed Feb 19 15:00:55 2014
New Revision: 262221
URL: http://svnweb.freebsd.org/changeset/base/262221

Log:
  MFC 250691:
  Return one-based key so that user can check if the key is ever allocated
  in the first place.

Modified:
  stable/8/lib/libthr/thread/thr_spec.c
Directory Properties:
  stable/8/lib/libthr/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/9/lib/libthr/thread/thr_spec.c
Directory Properties:
  stable/9/lib/libthr/   (props changed)

Modified: stable/8/lib/libthr/thread/thr_spec.c
==============================================================================
--- stable/8/lib/libthr/thread/thr_spec.c	Wed Feb 19 13:06:50 2014	(r262220)
+++ stable/8/lib/libthr/thread/thr_spec.c	Wed Feb 19 15:00:55 2014	(r262221)
@@ -69,7 +69,7 @@ _pthread_key_create(pthread_key_t *key, 
 
 			/* Unlock the key table: */
 			THR_LOCK_RELEASE(curthread, &_keytable_lock);
-			*key = i;
+			*key = i + 1;
 			return (0);
 		}
 
@@ -80,9 +80,10 @@ _pthread_key_create(pthread_key_t *key, 
 }
 
 int
-_pthread_key_delete(pthread_key_t key)
+_pthread_key_delete(pthread_key_t userkey)
 {
 	struct pthread *curthread = _get_curthread();
+	int key = userkey - 1;
 	int ret = 0;
 
 	if ((unsigned int)key < PTHREAD_KEYS_MAX) {
@@ -177,9 +178,10 @@ pthread_key_allocate_data(void)
 }
 
 int 
-_pthread_setspecific(pthread_key_t key, const void *value)
+_pthread_setspecific(pthread_key_t userkey, const void *value)
 {
 	struct pthread	*pthread;
+	pthread_key_t	key = userkey - 1;
 	int		ret = 0;
 
 	/* Point to the running thread: */
@@ -208,9 +210,10 @@ _pthread_setspecific(pthread_key_t key, 
 }
 
 void *
-_pthread_getspecific(pthread_key_t key)
+_pthread_getspecific(pthread_key_t userkey)
 {
 	struct pthread	*pthread;
+	pthread_key_t	key = userkey - 1;
 	const void	*data;
 
 	/* Point to the running thread: */


More information about the svn-src-all mailing list