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>