Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: Source/platform/heap/ThreadState.cpp

Issue 1097443004: Oilpan: rename GCState and GCReason values to reflect function only. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/platform/heap/ThreadState.h ('k') | Source/web/WebHeap.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 namespace { 693 namespace {
694 694
695 #define UNEXPECTED_GCSTATE(s) case ThreadState::s: RELEASE_ASSERT_WITH_MESSAGE(f alse, "Unexpected transition while in GCState " #s); return 695 #define UNEXPECTED_GCSTATE(s) case ThreadState::s: RELEASE_ASSERT_WITH_MESSAGE(f alse, "Unexpected transition while in GCState " #s); return
696 696
697 void unexpectedGCState(ThreadState::GCState gcState) 697 void unexpectedGCState(ThreadState::GCState gcState)
698 { 698 {
699 switch (gcState) { 699 switch (gcState) {
700 UNEXPECTED_GCSTATE(NoGCScheduled); 700 UNEXPECTED_GCSTATE(NoGCScheduled);
701 UNEXPECTED_GCSTATE(IdleGCScheduled); 701 UNEXPECTED_GCSTATE(IdleGCScheduled);
702 UNEXPECTED_GCSTATE(PreciseGCScheduled); 702 UNEXPECTED_GCSTATE(PreciseGCScheduled);
703 UNEXPECTED_GCSTATE(GCScheduledForTesting); 703 UNEXPECTED_GCSTATE(FullGCScheduled);
704 UNEXPECTED_GCSTATE(StoppingOtherThreads); 704 UNEXPECTED_GCSTATE(StoppingOtherThreads);
705 UNEXPECTED_GCSTATE(GCRunning); 705 UNEXPECTED_GCSTATE(GCRunning);
706 UNEXPECTED_GCSTATE(EagerSweepScheduled); 706 UNEXPECTED_GCSTATE(EagerSweepScheduled);
707 UNEXPECTED_GCSTATE(LazySweepScheduled); 707 UNEXPECTED_GCSTATE(LazySweepScheduled);
708 UNEXPECTED_GCSTATE(Sweeping); 708 UNEXPECTED_GCSTATE(Sweeping);
709 UNEXPECTED_GCSTATE(SweepingAndIdleGCScheduled); 709 UNEXPECTED_GCSTATE(SweepingAndIdleGCScheduled);
710 UNEXPECTED_GCSTATE(SweepingAndPreciseGCScheduled); 710 UNEXPECTED_GCSTATE(SweepingAndPreciseGCScheduled);
711 default: 711 default:
712 ASSERT_NOT_REACHED(); 712 ASSERT_NOT_REACHED();
713 return; 713 return;
714 } 714 }
715 } 715 }
716 716
717 #undef UNEXPECTED_GCSTATE 717 #undef UNEXPECTED_GCSTATE
718 718
719 } // namespace 719 } // namespace
720 720
721 #define VERIFY_STATE_TRANSITION(condition) if (UNLIKELY(!(condition))) unexpecte dGCState(m_gcState) 721 #define VERIFY_STATE_TRANSITION(condition) if (UNLIKELY(!(condition))) unexpecte dGCState(m_gcState)
722 722
723 void ThreadState::setGCState(GCState gcState) 723 void ThreadState::setGCState(GCState gcState)
724 { 724 {
725 switch (gcState) { 725 switch (gcState) {
726 case NoGCScheduled: 726 case NoGCScheduled:
727 checkThread(); 727 checkThread();
728 VERIFY_STATE_TRANSITION(m_gcState == StoppingOtherThreads || m_gcState = = Sweeping || m_gcState == SweepingAndIdleGCScheduled); 728 VERIFY_STATE_TRANSITION(m_gcState == StoppingOtherThreads || m_gcState = = Sweeping || m_gcState == SweepingAndIdleGCScheduled);
729 break; 729 break;
730 case IdleGCScheduled: 730 case IdleGCScheduled:
731 case PreciseGCScheduled: 731 case PreciseGCScheduled:
732 case GCScheduledForTesting: 732 case FullGCScheduled:
733 checkThread(); 733 checkThread();
734 VERIFY_STATE_TRANSITION(m_gcState == NoGCScheduled || m_gcState == IdleG CScheduled || m_gcState == PreciseGCScheduled || m_gcState == GCScheduledForTest ing || m_gcState == StoppingOtherThreads || m_gcState == SweepingAndIdleGCSchedu led || m_gcState == SweepingAndPreciseGCScheduled); 734 VERIFY_STATE_TRANSITION(m_gcState == NoGCScheduled || m_gcState == IdleG CScheduled || m_gcState == PreciseGCScheduled || m_gcState == FullGCScheduled || m_gcState == StoppingOtherThreads || m_gcState == SweepingAndIdleGCScheduled || m_gcState == SweepingAndPreciseGCScheduled);
735 completeSweep(); 735 completeSweep();
736 break; 736 break;
737 case StoppingOtherThreads: 737 case StoppingOtherThreads:
738 checkThread(); 738 checkThread();
739 VERIFY_STATE_TRANSITION(m_gcState == NoGCScheduled || m_gcState == IdleG CScheduled || m_gcState == PreciseGCScheduled || m_gcState == GCScheduledForTest ing || m_gcState == Sweeping || m_gcState == SweepingAndIdleGCScheduled || m_gcS tate == SweepingAndPreciseGCScheduled); 739 VERIFY_STATE_TRANSITION(m_gcState == NoGCScheduled || m_gcState == IdleG CScheduled || m_gcState == PreciseGCScheduled || m_gcState == FullGCScheduled || m_gcState == Sweeping || m_gcState == SweepingAndIdleGCScheduled || m_gcState = = SweepingAndPreciseGCScheduled);
740 completeSweep(); 740 completeSweep();
741 break; 741 break;
742 case GCRunning: 742 case GCRunning:
743 ASSERT(!isInGC()); 743 ASSERT(!isInGC());
744 VERIFY_STATE_TRANSITION(m_gcState != GCRunning); 744 VERIFY_STATE_TRANSITION(m_gcState != GCRunning);
745 break; 745 break;
746 case EagerSweepScheduled: 746 case EagerSweepScheduled:
747 case LazySweepScheduled: 747 case LazySweepScheduled:
748 ASSERT(isInGC()); 748 ASSERT(isInGC());
749 VERIFY_STATE_TRANSITION(m_gcState == GCRunning); 749 VERIFY_STATE_TRANSITION(m_gcState == GCRunning);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 } 781 }
782 } 782 }
783 783
784 void ThreadState::runScheduledGC(StackState stackState) 784 void ThreadState::runScheduledGC(StackState stackState)
785 { 785 {
786 checkThread(); 786 checkThread();
787 if (stackState != NoHeapPointersOnStack) 787 if (stackState != NoHeapPointersOnStack)
788 return; 788 return;
789 789
790 switch (gcState()) { 790 switch (gcState()) {
791 case GCScheduledForTesting: 791 case FullGCScheduled:
792 Heap::collectAllGarbage(); 792 Heap::collectAllGarbage();
793 break; 793 break;
794 case PreciseGCScheduled: 794 case PreciseGCScheduled:
795 Heap::collectGarbage(NoHeapPointersOnStack, GCWithoutSweep, Heap::Precis eGC); 795 Heap::collectGarbage(NoHeapPointersOnStack, GCWithoutSweep, Heap::Precis eGC);
796 break; 796 break;
797 case IdleGCScheduled: 797 case IdleGCScheduled:
798 // Idle time GC will be scheduled by Blink Scheduler. 798 // Idle time GC will be scheduled by Blink Scheduler.
799 break; 799 break;
800 default: 800 default:
801 break; 801 break;
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 json->beginArray(it->key.ascii().data()); 1292 json->beginArray(it->key.ascii().data());
1293 for (size_t age = 0; age <= maxHeapObjectAge; ++age) 1293 for (size_t age = 0; age <= maxHeapObjectAge; ++age)
1294 json->pushInteger(it->value.ages[age]); 1294 json->pushInteger(it->value.ages[age]);
1295 json->endArray(); 1295 json->endArray();
1296 } 1296 }
1297 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(TRACE_DISABLED_BY_DEFAULT("blink_gc"), s tatsName, this, json.release()); 1297 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(TRACE_DISABLED_BY_DEFAULT("blink_gc"), s tatsName, this, json.release());
1298 } 1298 }
1299 #endif 1299 #endif
1300 1300
1301 } // namespace blink 1301 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/heap/ThreadState.h ('k') | Source/web/WebHeap.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698