Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jul 2012 20:11:08 +0000
From:      gmiller@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r239587 - in soc2012/gmiller/locking-head: . include lib/libwitness
Message-ID:  <20120719201108.33630106566C@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120719201108.33630106566C>