Fix SCSetThreadName() macros in threads.h Add FreeBSD thread naming implementation.

remotes/origin/master
Nikolay Denev 13 years ago committed by Victor Julien
parent cde31abe96
commit 50aba06530

@ -467,18 +467,26 @@ extern __thread uint64_t spin_lock_cnt;
* OS specific macro's for setting the thread name. "top" can display * OS specific macro's for setting the thread name. "top" can display
* this name. * this name.
*/ */
#ifndef PR_SET_NAME /*PR_SET_NAME */ #if defined OS_FREEBSD /* FreeBSD */
#define SCSetThreadName(n)
#elif defined OS_FREEBSD || __OpenBSD__ /* FreeBSD or OpenBSD */
/** \todo Add implementation for FreeBSD */ /** \todo Add implementation for FreeBSD */
#define SCSetThreadName(n) #define SCSetThreadName(n) ({ \
#elif OS_WIN32 /* Windows */ char tname[16] = ""; \
if (strlen(n) > 16) \
SCLogDebug("Thread name is too long, truncating it..."); \
strlcpy(tname, n, 16); \
pthread_set_name_np(pthread_self(), tname); \
0; \
})
#elif defined __OpenBSD__ /* OpenBSD */
/** \todo Add implementation for OpenBSD */
#define SCSetThreadName(n) (0)
#elif defined OS_WIN32 /* Windows */
/** \todo Add implementation for Windows */ /** \todo Add implementation for Windows */
#define SCSetThreadName(n) #define SCSetThreadName(n) (0)
#elif OS_DARWIN /* Mac OS X */ #elif defined OS_DARWIN /* Mac OS X */
/** \todo Add implementation for MacOS */ /** \todo Add implementation for MacOS */
#define SCSetThreadName(n) #define SCSetThreadName(n) (0)
#else /* Linux */ #elif defined PR_SET_NAME /*PR_SET_NAME */
/** /**
* \brief Set the threads name * \brief Set the threads name
*/ */
@ -492,6 +500,8 @@ extern __thread uint64_t spin_lock_cnt;
SCLogDebug("Error setting thread name \"%s\": %s", tname, strerror(errno)); \ SCLogDebug("Error setting thread name \"%s\": %s", tname, strerror(errno)); \
ret; \ ret; \
}) })
#else
#define SCSetThreadName(n) (0)
#endif #endif

Loading…
Cancel
Save