| Index: src/platform-linux.cc
|
| ===================================================================
|
| --- src/platform-linux.cc (revision 6941)
|
| +++ src/platform-linux.cc (working copy)
|
| @@ -31,6 +31,7 @@
|
| #include <pthread.h>
|
| #include <semaphore.h>
|
| #include <signal.h>
|
| +#include <sys/prctl.h>
|
| #include <sys/time.h>
|
| #include <sys/resource.h>
|
| #include <sys/syscall.h>
|
| @@ -559,9 +560,17 @@
|
| Thread::Thread(Isolate* isolate)
|
| : ThreadHandle(ThreadHandle::INVALID),
|
| isolate_(isolate) {
|
| + set_name("v8:<unknown>");
|
| }
|
|
|
|
|
| +Thread::Thread(Isolate* isolate, const char* name)
|
| + : ThreadHandle(ThreadHandle::INVALID),
|
| + isolate_(isolate) {
|
| + set_name(name);
|
| +}
|
| +
|
| +
|
| Thread::~Thread() {
|
| }
|
|
|
| @@ -571,6 +580,7 @@
|
| // This is also initialized by the first argument to pthread_create() but we
|
| // don't know which thread will run first (the original thread or the new
|
| // one) so we initialize it here too.
|
| + prctl(PR_SET_NAME, thread->name(), 0, 0, 0);
|
| thread->thread_handle_data()->thread_ = pthread_self();
|
| ASSERT(thread->IsValid());
|
| Thread::SetThreadLocal(Isolate::isolate_key(), thread->isolate());
|
| @@ -579,6 +589,12 @@
|
| }
|
|
|
|
|
| +void Thread::set_name(const char* name) {
|
| + strncpy(name_, name, sizeof(name_));
|
| + name_[sizeof(name_) - 1] = '\0';
|
| +}
|
| +
|
| +
|
| void Thread::Start() {
|
| pthread_create(&thread_handle_data()->thread_, NULL, ThreadEntry, this);
|
| ASSERT(IsValid());
|
|
|