socsvn commit: r239587 - in soc2012/gmiller/locking-head: . include lib/libwitness

gmiller at FreeBSD.org gmiller at FreeBSD.org
Thu Jul 19 20:11:10 UTC 2012


Author: gmiller
Date: Thu Jul 19 20:11:07 2012
New Revision: 239587
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239587

Log:
   r239627 at FreeBSD-dev:  root | 2012-07-15 10:17:50 -0500
   Implement pthread_setname_np().

Modified:
  soc2012/gmiller/locking-head/   (props changed)
  soc2012/gmiller/locking-head/include/pthread_np.h
  soc2012/gmiller/locking-head/lib/libwitness/lockinfo.c
  soc2012/gmiller/locking-head/lib/libwitness/witness.h

Modified: soc2012/gmiller/locking-head/include/pthread_np.h
==============================================================================
--- soc2012/gmiller/locking-head/include/pthread_np.h	Thu Jul 19 19:57:23 2012	(r239586)
+++ soc2012/gmiller/locking-head/include/pthread_np.h	Thu Jul 19 20:11:07 2012	(r239587)
@@ -70,6 +70,7 @@
 
 struct pthread_lockorder_np {
 	struct _pthread_lockorder_private *_pvt;
+	void		*lock;
 };
 
 typedef void	(*pthread_switch_routine_t)(pthread_t, pthread_t);

Modified: soc2012/gmiller/locking-head/lib/libwitness/lockinfo.c
==============================================================================
--- soc2012/gmiller/locking-head/lib/libwitness/lockinfo.c	Thu Jul 19 19:57:23 2012	(r239586)
+++ soc2012/gmiller/locking-head/lib/libwitness/lockinfo.c	Thu Jul 19 20:11:07 2012	(r239587)
@@ -47,6 +47,7 @@
 		info->lock = lock;
 		info->child = NULL;
 		info->sibling = NULL;
+		info->name = NULL;
 		SLIST_INIT(&info->bless_head);
 		SLIST_INSERT_HEAD(&lock_info_head, info, lock_info_next);
 	}
@@ -87,6 +88,21 @@
 
 		SLIST_REMOVE_HEAD(&lock_info_head, lock_info_next);
 
+		if (info->name != NULL) {
+			free(info->name);
+		}
 		free(info);
 	}
 }
+
+void
+pthread_setname_np(void *lock, const char *name)
+{
+	struct lock_info *info;
+
+	info = lookup_lock(lock);
+	if (info->name != NULL) {
+		info->name = realloc(info->name, strlen(name) + 1);
+		strcpy(info->name, name);
+	}
+}

Modified: soc2012/gmiller/locking-head/lib/libwitness/witness.h
==============================================================================
--- soc2012/gmiller/locking-head/lib/libwitness/witness.h	Thu Jul 19 19:57:23 2012	(r239586)
+++ soc2012/gmiller/locking-head/lib/libwitness/witness.h	Thu Jul 19 20:11:07 2012	(r239587)
@@ -31,6 +31,7 @@
 #include <pthread.h>
 #include <pthread_np.h>
 #include <stdlib.h>
+#include <string.h>
 
 struct blessing {
 	SLIST_ENTRY(blessing) bless_next;
@@ -44,6 +45,7 @@
 	struct lock_info *child;
 	struct lock_info *sibling;
 	SLIST_HEAD(bless_head, blessing) bless_head;
+	char		*name;
 };
 
 extern pthread_mutex_t witness_mtx;


More information about the svn-soc-all mailing list