Index: src/profiler/sampler.cc |
diff --git a/src/profiler/sampler.cc b/src/profiler/sampler.cc |
index 2d3b1283404562b47fdaa1cc8263fc858fd50b2e..646bd27490cfd4f6713b0a3caad8b3241f68530b 100644 |
--- a/src/profiler/sampler.cc |
+++ b/src/profiler/sampler.cc |
@@ -733,7 +733,13 @@ class SamplerThread : public base::Thread { |
if (SignalHandler::Installed()) { |
for (HashMap::Entry *p = thread_id_to_samplers_.Get().Start(); |
p != NULL; p = thread_id_to_samplers_.Get().Next(p)) { |
+#if V8_OS_AIX && V8_TARGET_ARCH_PPC64 |
+ // on AIX64, cannot cast (void *) to pthread_t which is |
+ // of type unsigned int (4bytes) |
+ pthread_t thread_id = reinterpret_cast<intptr_t>(p->key); |
+#else |
pthread_t thread_id = reinterpret_cast<pthread_t>(p->key); |
+#endif |
pthread_kill(thread_id, SIGPROF); |
} |
} |