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.