On May 6, 2013, at 3:31 PM, Igor Galić <i.ga...@brainsware.org> wrote:
> > > ----- Original Message ----- >> Updated Branches: >> refs/heads/master aeb7442e6 -> 96d979d97 >> >> >> TS-1880: add pthread_setname_np support >> >> >> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo >> Commit: >> http://git-wip-us.apache.org/repos/asf/trafficserver/commit/96d979d9 >> Tree: >> http://git-wip-us.apache.org/repos/asf/trafficserver/tree/96d979d9 >> Diff: >> http://git-wip-us.apache.org/repos/asf/trafficserver/diff/96d979d9 >> >> Branch: refs/heads/master >> Commit: 96d979d97129c4ba5f7d45d5b323267a4fb62049 >> Parents: aeb7442 >> Author: James Peach <jpe...@apache.org> >> Authored: Fri May 3 19:36:26 2013 -0700 >> Committer: James Peach <jpe...@apache.org> >> Committed: Mon May 6 12:02:30 2013 -0700 >> >> ---------------------------------------------------------------------- >> CHANGES | 2 + >> configure.ac | 63 >> +++++++++++++++++++++++++ >> iocore/eventsystem/UnixEventProcessor.cc | 4 -- >> lib/ts/ink_thread.h | 14 +++++- >> 4 files changed, 77 insertions(+), 6 deletions(-) >> ---------------------------------------------------------------------- >> >> >> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/96d979d9/CHANGES >> ---------------------------------------------------------------------- >> diff --git a/CHANGES b/CHANGES >> index 265eb4f..e932443 100644 >> --- a/CHANGES >> +++ b/CHANGES >> @@ -2,6 +2,8 @@ >> Changes with Apache Traffic Server 3.3.3 >> >> >> + *) [TS-1880] Use pthread_setname_np to set the thread name on >> multiple platforms. >> + >> *) [TS-1879] Make the Ptr<> conversion constructor explicit. >> >> *) [TS-1768] Prefer AC_SEARCH_LIBS to AC_CHECK_LIB to avoid >> unnecessary linking. >> >> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/96d979d9/configure.ac >> ---------------------------------------------------------------------- >> diff --git a/configure.ac b/configure.ac >> index c1b2783..fe90f88 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -1342,6 +1342,7 @@ TS_FLAG_HEADERS([sys/epoll.h \ >> sys/param.h \ >> sys/pset.h \ >> sched.h \ >> + pthread.h \ >> pthread_np.h \ >> machine/endian.h \ >> endian.h \ >> @@ -1477,6 +1478,68 @@ TS_FLAG_HEADERS([netinet/ip_icmp.h], [], [], >> AC_SUBST(netinet_iph) >> AC_SUBST(netinet_ip_icmph) >> >> +# Test for additional pthread interfaces. >> + >> +# Darwin pthread_setname_np: >> +AC_MSG_CHECKING([for 1-parameter version of pthread_setname_np()]) >> +AC_COMPILE_IFELSE([ >> + AC_LANG_PROGRAM([ >> +#if HAVE_PTHREAD_H >> +#include <pthread.h> >> +#endif >> +#if PTHREAD_NP_H >> +#include <pthread_np.h> >> +#endif >> + ], [ >> + pthread_setname_np("conftest"); >> + ]) >> + ], [ >> + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_1, 1, [Whether the 1 parameter >> version of pthread_setname_np() is available]) >> + AC_MSG_RESULT([yes]) >> + ], [ >> + AC_MSG_RESULT([no]) >> +]) >> + >> +# Linux pthread_setname_np: >> +AC_MSG_CHECKING([for 2-parameter version of pthread_setname_np()]) >> +AC_COMPILE_IFELSE([ >> + AC_LANG_PROGRAM([ >> +#if HAVE_PTHREAD_H >> +#include <pthread.h> >> +#endif >> +#if PTHREAD_NP_H >> +#include <pthread_np.h> >> +#endif >> + ], [ >> + pthread_setname_np(pthread_self(), "conftest"); >> + ]) >> + ], [ >> + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_2, 1, [Whether the 2 parameter >> version of pthread_setname_np() is available]) >> + AC_MSG_RESULT([yes]) >> + ], [ >> + AC_MSG_RESULT([no]) >> +]) >> + >> +# BSD pthread_set_name_np: >> +AC_MSG_CHECKING([for 2-parameter version of pthread_set_name_np()]) >> +AC_COMPILE_IFELSE([ >> + AC_LANG_PROGRAM([ >> +#if HAVE_PTHREAD_H >> +#include <pthread.h> >> +#endif >> +#if PTHREAD_NP_H >> +#include <pthread_np.h> >> +#endif >> + ], [ >> + pthread_set_name_np(pthread_self(), "conftest"); >> + ]) >> + ], [ >> + AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_2, 1, [Whether the 2 >> parameter version of pthread_set_name_np() is available]) >> + AC_MSG_RESULT([yes]) >> + ], [ >> + AC_MSG_RESULT([no]) >> +]) >> + > > given this amount of code, we should off-load this to build/pthread.m4 Yeh we should probably do this. When I started this patch I didn't realize there would be so much pointless platform divergence J