Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Jun 2012 23:56:06 +0000
From:      gmiller@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r236904 - soc2012/gmiller/locking-head/lib/libthr/thread
Message-ID:  <20120601235606.E99E0106566B@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gmiller
Date: Fri Jun  1 23:56:06 2012
New Revision: 236904
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=236904

Log:
  Add thread exit lock profiling calls.
  

Modified:
  soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c
  soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h
  soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c

Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c
==============================================================================
--- soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c	Fri Jun  1 21:33:33 2012	(r236903)
+++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c	Fri Jun  1 23:56:06 2012	(r236904)
@@ -263,6 +263,8 @@
 {
 	struct pthread *curthread = _get_curthread();
 
+	LOCK_PROFILE_EXIT_THREAD(curthread);
+
 	/* Check if there is thread specific data: */
 	if (curthread->specific != NULL) {
 		/* Run the thread-specific data destructors: */

Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h
==============================================================================
--- soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h	Fri Jun  1 21:33:33 2012	(r236903)
+++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h	Fri Jun  1 23:56:06 2012	(r236904)
@@ -747,6 +747,7 @@
 	    __hidden;
 void	_mutex_obtain_success(struct pthread_mutex *, const char *, int)
 	    __hidden;
+void	_lock_profile_exit_thread(struct pthread *curthread) __hidden;
 void	_mutex_release(struct pthread_mutex *) __hidden;
 void	_libpthread_init(struct pthread *) __hidden;
 struct pthread *_thr_alloc(struct pthread *) __hidden;
@@ -807,15 +808,22 @@
 void 	_pthread_cancel_leave(int maycancel);
 
 #ifdef LOCK_PROFILING
+
+#define		LOCK_PROFILE_EXIT_THREAD(t)                                  \
+		_lock_profile_exit_thread(t)
 #define		MUTEX_OBTAIN_SUCCESS(m)                                      \
 		_mutex_obtain_success(m, file, line)
 #define		MUTEX_OBTAIN_FAILED(m)                                       \
 		_mutex_obtain_failed(m, file, line)
 #define		MUTEX_RELEASE(m)	_mutex_release(m)
+
 #else
+
+#define		LOCK_PROFILE_EXIT_THREAD(t) do { } while (0)
 #define		MUTEX_OBTAIN_SUCCESS(m)	do { } while (0)
 #define		MUTEX_OBTAIN_FAILED(m)	do { } while (0)
 #define		MUTEX_RELEASE(m)	do { } while (0)
+
 #endif
 
 /* #include <fcntl.h> */

Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c
==============================================================================
--- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c	Fri Jun  1 21:33:33 2012	(r236903)
+++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c	Fri Jun  1 23:56:06 2012	(r236904)
@@ -41,3 +41,8 @@
 _mutex_release(struct pthread_mutex *m)
 {
 }
+
+void
+_lock_profile_exit_thread(struct pthread *t)
+{
+}



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