Reviewers: jarin,

Description:
Make thread_creation_mutex a Thread::PlatformData member.

BUG=

Please review this at https://codereview.chromium.org/198643003/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+4, -6 lines):
  M src/platform-posix.cc


Index: src/platform-posix.cc
diff --git a/src/platform-posix.cc b/src/platform-posix.cc
index 0ec458905892e9488e45ee2e58df059bf60a841c..439140ac0adc3563a04ccb068114c7071c91c99b 100644
--- a/src/platform-posix.cc
+++ b/src/platform-posix.cc
@@ -565,6 +565,8 @@ class Thread::PlatformData : public Malloced {
  public:
   PlatformData() : thread_(kNoThread) {}
   pthread_t thread_;  // Thread handle for pthread.
+  // Synchronizes thread creation
+  Mutex thread_creation_mutex_;
 };

 Thread::Thread(const Options& options)
@@ -583,10 +585,6 @@ Thread::~Thread() {
 }


-// Synchronizes thread creation
-static Mutex thread_creation_mutex_;
-
-
 static void SetThreadName(const char* name) {
 #if V8_OS_DRAGONFLYBSD || V8_OS_FREEBSD || V8_OS_OPENBSD
   pthread_set_name_np(pthread_self(), name);
@@ -619,7 +617,7 @@ static void* ThreadEntry(void* arg) {
// We take the lock here to make sure that pthread_create finished first since // we don't know which thread will run first (the original thread or the new
   // one).
-  { LockGuard<Mutex> lock_guard(&thread_creation_mutex_); }
+  { LockGuard<Mutex> lock_guard(&thread->data()->thread_creation_mutex_); }
   SetThreadName(thread->name());
   ASSERT(thread->data()->thread_ != kNoThread);
   thread->NotifyStartedAndRun();
@@ -647,7 +645,7 @@ void Thread::Start() {
   }
 #endif
   {
-    LockGuard<Mutex> lock_guard(&thread_creation_mutex_);
+    LockGuard<Mutex> lock_guard(&data_->thread_creation_mutex_);
     result = pthread_create(&data_->thread_, &attr, ThreadEntry, this);
   }
   ASSERT_EQ(0, result);


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to