Chromium Code Reviews| Index: Source/heap/ThreadState.cpp |
| diff --git a/Source/heap/ThreadState.cpp b/Source/heap/ThreadState.cpp |
| index e915d48d8a5cdb429e9933d239808f1c25b73972..7feac15c2ab3340fa37833c00acaa13d37530aff 100644 |
| --- a/Source/heap/ThreadState.cpp |
| +++ b/Source/heap/ThreadState.cpp |
| @@ -59,7 +59,7 @@ static Mutex& threadAttachMutex() |
| } |
| static void parkAfterPushRegisters(SafePointBarrier*, ThreadState*, intptr_t* stackEnd); |
| -static void notifyPausedAfterPushRegisters(SafePointBarrier*, ThreadState*, intptr_t* stackEnd); |
| +static void enterSafePointAfterPushRegisters(SafePointBarrier*, ThreadState*, intptr_t* stackEnd); |
| class SafePointBarrier { |
| public: |
| @@ -73,12 +73,12 @@ public: |
| { |
| } |
| - // Request other attached and non-paused threads to park themselves on safepoints. |
| + // Request other attached and not-in-safe-point threads to park themselves on safepoints. |
|
Mads Ager (chromium)
2013/12/05 09:22:24
Request other attached threads that are not at saf
haraken
2013/12/05 09:37:40
Done.
|
| void parkOthers(ThreadState::StackState stackState) |
| { |
| - // Mark current thread as paused before attempting to lock the threadAttachMutex(). This will |
| + // Enter safe point before attempting to lock the threadAttachMutex(). This will |
| // allow to avoid dead-lock if two threads arrive into parkOthers() simultaneously. |
| - ThreadState::Current()->paused(stackState); |
| + ThreadState::Current()->enterSafePoint(stackState); |
| // Lock threadAttachMutex() to prevent threads from attaching. |
| threadAttachMutex().lock(); |
| @@ -104,7 +104,7 @@ public: |
| NoBarrier_AtomicIncrement(&m_unparkedThreadCount, -threads.size()); |
| Release_Store(&m_canResume, 1); |
| { |
| - // FIXME(oilpan) resumed threads will all contend for |
| + // FIXME(oilpan): Resumed threads will all contend for |
| // m_mutex just to unlock it later which is a waste of |
| // resources. |
| MutexLocker locker(m_mutex); |
| @@ -117,7 +117,7 @@ public: |
| } |
| threadAttachMutex().unlock(); |
| - ThreadState::Current()->resumed(); |
| + ThreadState::Current()->leaveSafePoint(); |
| } |
| void doPark(ThreadState* state, intptr_t* stackEnd) |
| @@ -140,7 +140,7 @@ public: |
| } |
| } |
| - void doNotifyPaused(ThreadState* state, intptr_t* stackEnd) |
| + void doEnterSafePoint(ThreadState* state, intptr_t* stackEnd) |
| { |
| state->recordStackEnd(stackEnd); |
| if (!NoBarrier_AtomicIncrement(&m_unparkedThreadCount, -1)) { |
| @@ -149,13 +149,13 @@ public: |
| } |
| } |
| - void notifyPaused(ThreadState* state) |
| + void enterSafePoint(ThreadState* state) |
| { |
| ASSERT(!state->isSweepInProgress()); |
| - pushAllRegisters(this, state, notifyPausedAfterPushRegisters); |
| + pushAllRegisters(this, state, enterSafePointAfterPushRegisters); |
| } |
| - void notifyResumed(ThreadState* state) |
| + void leaveSafePoint(ThreadState* state) |
| { |
| if (NoBarrier_AtomicIncrement(&m_unparkedThreadCount, 1) > 0) |
| checkAndPark(state); |
| @@ -211,14 +211,14 @@ void ThreadState::attach(intptr_t* startOfStack) |
| void ThreadState::detach() |
| { |
| ThreadState* current = Current(); |
| - // Mark current thread as paused before trying to acquire threadAttachMutex |
| + // Enter safe point before trying to acquire threadAttachMutex |
| // to avoid dead lock if another thread is preparing for GC, has acquired |
| // threadAttachMutex and waiting for other threads to pause or reach a |
| // safepoint. |
| - if (!current->isPaused()) |
| - current->paused(NoHeapPointersOnStack); |
| + if (!current->isInSafePoint()) |
| + current->enterSafePoint(NoHeapPointersOnStack); |
| MutexLocker locker(threadAttachMutex()); |
| - current->resumed(); |
| + current->leaveSafePoint(); |
| current->destroy(); |
| attachedThreads().remove(current); |
| delete current; |
| @@ -267,24 +267,24 @@ void ThreadState::destroy() |
| m_interruptor = 0; |
| } |
| -void ThreadState::paused(StackState stackState) |
| +void ThreadState::enterSafePoint(StackState stackState) |
| { |
| if (stackState == NoHeapPointersOnStack && gcRequested()) |
| Heap::collectGarbage(NoHeapPointersOnStack); |
| checkThread(); |
| - ASSERT(!m_isPaused); |
| - m_isPaused = true; |
| + ASSERT(!m_inSafePoint); |
| + m_inSafePoint = true; |
| m_stackState = stackState; |
| - s_safePointBarrier->notifyPaused(this); |
| + s_safePointBarrier->enterSafePoint(this); |
| } |
| -void ThreadState::resumed() |
| +void ThreadState::leaveSafePoint() |
| { |
| checkThread(); |
| - ASSERT(m_isPaused); |
| - m_isPaused = false; |
| + ASSERT(m_inSafePoint); |
| + m_inSafePoint = false; |
| m_stackState = HeapPointersOnStack; |
| - s_safePointBarrier->notifyResumed(this); |
| + s_safePointBarrier->leaveSafePoint(this); |
| } |
| void ThreadState::visitRoots(Visitor* visitor) |
| @@ -447,10 +447,10 @@ void ThreadState::setGCRequested(bool gcRequested) |
| void ThreadState::setInterruptor(Interruptor* interruptor) |
| { |
| - bool wasPaused = false; |
| - if (!isPaused()) { |
| - paused(HeapPointersOnStack); |
| - wasPaused = true; |
| + bool wasInSafePoint = false; |
|
Mads Ager (chromium)
2013/12/05 09:22:24
wasAtSafePoint?
|
| + if (!isInSafePoint()) { |
| + enterSafePoint(HeapPointersOnStack); |
| + wasInSafePoint = true; |
| } |
| { |
| @@ -459,8 +459,8 @@ void ThreadState::setInterruptor(Interruptor* interruptor) |
| m_interruptor = interruptor; |
| } |
| - if (wasPaused) |
| - resumed(); |
| + if (wasInSafePoint) |
| + leaveSafePoint(); |
| } |
| bool ThreadState::inFinalizeAll() |
| @@ -501,7 +501,7 @@ void ThreadState::Interruptor::onInterrupted() |
| { |
| ThreadState* state = ThreadState::Current(); |
| ASSERT(state); |
| - ASSERT(!state->isPaused()); |
| + ASSERT(!state->isInSafePoint()); |
| state->safePoint(); |
| } |
| @@ -546,9 +546,9 @@ static void parkAfterPushRegisters(SafePointBarrier* barrier, ThreadState* state |
| barrier->doPark(state, stackEnd); |
| } |
| -static void notifyPausedAfterPushRegisters(SafePointBarrier* barrier, ThreadState* state, intptr_t* stackEnd) |
| +static void enterSafePointAfterPushRegisters(SafePointBarrier* barrier, ThreadState* state, intptr_t* stackEnd) |
| { |
| - barrier->doNotifyPaused(state, stackEnd); |
| + barrier->doEnterSafePoint(state, stackEnd); |
| } |