]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Print pthread_t in a more safe way
authorChilledheart <rwindz0@gmail.com>
Wed, 21 May 2014 17:24:42 +0000 (01:24 +0800)
committerChilledheart <rwindz0@gmail.com>
Wed, 21 May 2014 17:24:42 +0000 (01:24 +0800)
util/env_posix.cc

index 7ffba6f538b7fbf0031be6c1bc49f3fdc29c58c5..1f8c3bcf26c2f0b674b41b7e0cbb466d29a01262 100644 (file)
@@ -94,6 +94,17 @@ static Status IOError(const std::string& context, int err_number) {
   return Status::IOError(context, strerror(err_number));
 }
 
+// TODO(sdong): temp logging. Need to help debugging. Remove it when
+// the feature is proved to be stable.
+inline void PrintThreadInfo(size_t thread_id, pthread_t id) {
+  unsigned char* ptc = (unsigned char*)(void*)(&id);
+  fprintf(stdout, "Bg thread %zu terminates 0x", thread_id);
+  for (size_t i = 0; i < sizeof(id); i++) {
+    fprintf(stdout, "%02x", (unsigned)(ptc[i]));
+  }
+  fprintf(stdout, "\n");
+}
+
 #ifdef NDEBUG
 // empty in release build
 #define TEST_KILL_RANDOM(rocksdb_kill_odds)
@@ -1514,8 +1525,7 @@ class PosixEnv : public Env {
           PthreadCall("unlock", pthread_mutex_unlock(&mu_));
           // TODO(sdong): temp logging. Need to help debugging. Remove it when
           // the feature is proved to be stable.
-          fprintf(stdout, "Bg thread %zu terminates %llx\n", thread_id,
-                  static_cast<long long unsigned int>(terminating_thread));
+          PrintThreadInfo(thread_id, terminating_thread);
           break;
         }
         void (*function)(void*) = queue_.front().function;