Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Tested-by: Jeremy Huddleston Sequoia <[email protected]> (on current macOS)
> On Sep 10, 2016, at 21:14, Alan Coopersmith <[email protected]> > wrote: > > Autoconf logic borrowed from glib > > Signed-off-by: Alan Coopersmith <[email protected]> > --- > configure.ac | 20 ++++++++++++++++++++ > include/dix-config.h.in | 6 ++++++ > os/inputthread.c | 12 ++++++++++++ > 3 files changed, 38 insertions(+) > > I have only tested this on Solaris, not MacOS or Linux, but since the > similar code in glib works on both, hope this will too. > > diff --git a/configure.ac b/configure.ac > index e206e0f..4ff317f 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -870,6 +870,26 @@ if test "x$INPUTTHREAD" = "xyes" ; then > SYS_LIBS="$SYS_LIBS $PTHREAD_LIBS" > CFLAGS="$CFLAGS $PTHREAD_CFLAGS" > AC_DEFINE(INPUTTHREAD, 1, [Use a separate input thread]) > + > + save_LIBS="$LIBS" > + LIBS="$LIBS $SYS_LIBS" > + dnl MacOS X 10.6 & higher > + AC_MSG_CHECKING(for pthread_setname_np(const char*)) > + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>], > + [pthread_setname_np("example")])], > + [AC_MSG_RESULT(yes) > + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID,1, > + [Have function pthread_setname_np(const char*)])], > + [AC_MSG_RESULT(no)]) > + dnl GNU libc 2.12 & higher, Solaris 11.3 & higher > + AC_MSG_CHECKING(for pthread_setname_np(pthread_t, const char*)) > + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>], > + [pthread_setname_np(pthread_self(), > "example")])], > + [AC_MSG_RESULT(yes) > + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITH_TID,1, > + [Have function pthread_setname_np(pthread_t, > const char*)])], > + [AC_MSG_RESULT(no)]) > + LIBS="$save_LIBS" > fi > > REQUIRED_MODULES="$FIXESPROTO $DAMAGEPROTO $XCMISCPROTO $XTRANS $BIGREQSPROTO > $SDK_REQUIRED_MODULES" > diff --git a/include/dix-config.h.in b/include/dix-config.h.in > index d49af92..4f020e5 100644 > --- a/include/dix-config.h.in > +++ b/include/dix-config.h.in > @@ -143,6 +143,12 @@ > /* Define to 1 if you have the `mmap' function. */ > #undef HAVE_MMAP > > +/* Define to 1 if you have the function pthread_setname_np(const char*) */ > +#undef HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID > + > +/* Define to 1 if you have the function pthread_setname_np(pthread_t, const > char*) */ > +#undef HAVE_PTHREAD_SETNAME_NP_WITH_TID > + > /* Define to 1 if you have the <ndbm.h> header file. */ > #undef HAVE_NDBM_H > > diff --git a/os/inputthread.c b/os/inputthread.c > index 1cd1c2a..2ea39e7 100644 > --- a/os/inputthread.c > +++ b/os/inputthread.c > @@ -310,6 +310,12 @@ InputThreadDoWork(void *arg) > > inputThreadInfo->running = TRUE; > > +#if defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID) > + pthread_setname_np (pthread_self(), "InputThread"); > +#elif defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID) > + pthread_setname_np ("InputThread"); > +#endif > + > ospoll_add(inputThreadInfo->fds, hotplugPipeRead, > ospoll_trigger_level, > InputThreadPipeNotify, > @@ -411,6 +417,12 @@ InputThreadPreInit(void) > fcntl(hotplugPipeRead, F_SETFL, O_NONBLOCK | O_CLOEXEC); > hotplugPipeWrite = hotplugPipe[1]; > > +#if defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID) > + pthread_setname_np (pthread_self(), "MainThread"); > +#elif defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID) > + pthread_setname_np ("MainThread"); > +#endif > + > } > > /** > -- > 2.7.4 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
