From: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>

We cannot use a sequence number for the thread index any more.  This
patch uses LWP for it instead.

Signed-off-by: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>
---
 include/logger.h |    2 +-
 include/util.h   |    1 +
 lib/logger.c     |    5 +++--
 lib/util.c       |    6 ++++++
 sheep/work.c     |    2 +-
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/logger.h b/include/logger.h
index 6721a58..88af7d5 100644
--- a/include/logger.h
+++ b/include/logger.h
@@ -35,7 +35,7 @@ void log_close(void);
 void dump_logmsg(void *);
 void log_write(int prio, const char *func, int line, const char *fmt, ...)
        __printf(4, 5);
-void set_thread_name(const char *name, int idx);
+void set_thread_name(const char *name, bool show_idx);
 void get_thread_name(char *name);
 
 #define sd_dump_variable(var) ({               \
diff --git a/include/util.h b/include/util.h
index 0530a2c..23d5678 100644
--- a/include/util.h
+++ b/include/util.h
@@ -87,6 +87,7 @@ int rmdir_r(char *dir_path);
 bool is_numeric(const char *p);
 int install_sighandler(int signum, void (*handler)(int), bool once);
 int install_crash_handler(void (*handler)(int));
+pid_t gettid(void);
 
 void trim_zero_sectors(void *buf, uint64_t *offset, uint32_t *len);
 void untrim_zero_sectors(void *buf, uint64_t offset, uint32_t len,
diff --git a/lib/logger.c b/lib/logger.c
index 659ae2d..e48471d 100644
--- a/lib/logger.c
+++ b/lib/logger.c
@@ -609,10 +609,11 @@ notrace void log_close(void)
        }
 }
 
-notrace void set_thread_name(const char *name, int idx)
+notrace void set_thread_name(const char *name, bool show_idx)
 {
        worker_name = name;
-       worker_idx = idx;
+       if (show_idx)
+               worker_idx = gettid();
 }
 
 notrace void get_thread_name(char *name)
diff --git a/lib/util.c b/lib/util.c
index 3ac89c0..6908bb0 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -12,6 +12,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include <stdlib.h>
+#include <sys/syscall.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/stat.h>
@@ -375,3 +376,8 @@ int install_crash_handler(void (*handler)(int))
                install_sighandler(SIGILL, handler, true) ||
                install_sighandler(SIGFPE, handler, true);
 }
+
+pid_t gettid(void)
+{
+       return syscall(SYS_gettid);
+}
diff --git a/sheep/work.c b/sheep/work.c
index 81e7e54..bc5c7c9 100644
--- a/sheep/work.c
+++ b/sheep/work.c
@@ -84,7 +84,7 @@ static void *worker_routine(void *arg)
        struct work *work;
        eventfd_t value = 1;
 
-       set_thread_name(wi->name, 0);
+       set_thread_name(wi->name, false);
 
        pthread_mutex_lock(&wi->startup_lock);
        /* started this thread */
-- 
1.7.9.5

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to