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

Side by Side Diff: third_party/WebKit/Source/platform/heap/ThreadState.h

Issue 1845543002: Rename Heap to ThreadHeap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // { 99 // {
100 // m_bar->...; // It is safe to touch other on-heap objects. 100 // m_bar->...; // It is safe to touch other on-heap objects.
101 // } 101 // }
102 // Member<Bar> m_bar; 102 // Member<Bar> m_bar;
103 // }; 103 // };
104 #define USING_PRE_FINALIZER(Class, preFinalizer) \ 104 #define USING_PRE_FINALIZER(Class, preFinalizer) \
105 public: \ 105 public: \
106 static bool invokePreFinalizer(void* object) \ 106 static bool invokePreFinalizer(void* object) \
107 { \ 107 { \
108 Class* self = reinterpret_cast<Class*>(object); \ 108 Class* self = reinterpret_cast<Class*>(object); \
109 if (Heap::isHeapObjectAlive(self)) \ 109 if (ThreadHeap::isHeapObjectAlive(self)) \
110 return false; \ 110 return false; \
111 self->Class::preFinalizer(); \ 111 self->Class::preFinalizer(); \
112 return true; \ 112 return true; \
113 } \ 113 } \
114 using UsingPreFinalizerMacroNeedsTrailingSemiColon = char 114 using UsingPreFinalizerMacroNeedsTrailingSemiColon = char
115 115
116 class PLATFORM_EXPORT ThreadState { 116 class PLATFORM_EXPORT ThreadState {
117 USING_FAST_MALLOC(ThreadState); 117 USING_FAST_MALLOC(ThreadState);
118 WTF_MAKE_NONCOPYABLE(ThreadState); 118 WTF_MAKE_NONCOPYABLE(ThreadState);
119 public: 119 public:
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 bool isInGC() const { return gcState() == GCRunning; } 248 bool isInGC() const { return gcState() == GCRunning; }
249 bool isSweepingInProgress() const 249 bool isSweepingInProgress() const
250 { 250 {
251 return gcState() == Sweeping || gcState() == SweepingAndPreciseGCSchedul ed || gcState() == SweepingAndIdleGCScheduled; 251 return gcState() == Sweeping || gcState() == SweepingAndPreciseGCSchedul ed || gcState() == SweepingAndIdleGCScheduled;
252 } 252 }
253 253
254 // A GC runs in the following sequence. 254 // A GC runs in the following sequence.
255 // 255 //
256 // 1) All threads park at safe points. 256 // 1) All threads park at safe points.
257 // 2) The GCing thread calls preGC() for all ThreadStates. 257 // 2) The GCing thread calls preGC() for all ThreadStates.
258 // 3) The GCing thread calls Heap::collectGarbage(). 258 // 3) The GCing thread calls ThreadHeap::collectGarbage().
259 // This does marking but doesn't do sweeping. 259 // This does marking but doesn't do sweeping.
260 // 4) The GCing thread calls postGC() for all ThreadStates. 260 // 4) The GCing thread calls postGC() for all ThreadStates.
261 // 5) The GCing thread resume all threads. 261 // 5) The GCing thread resume all threads.
262 // 6) Each thread calls preSweep(). 262 // 6) Each thread calls preSweep().
263 // 7) Each thread runs lazy sweeping (concurrently with sweepings 263 // 7) Each thread runs lazy sweeping (concurrently with sweepings
264 // in other threads) and eventually calls completeSweep(). 264 // in other threads) and eventually calls completeSweep().
265 // 8) Each thread calls postSweep(). 265 // 8) Each thread calls postSweep().
266 // 266 //
267 // Notes: 267 // Notes:
268 // - We stop the world between 1) and 5). 268 // - We stop the world between 1) and 5).
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 700
701 template<> class ThreadStateFor<AnyThread> { 701 template<> class ThreadStateFor<AnyThread> {
702 STATIC_ONLY(ThreadStateFor); 702 STATIC_ONLY(ThreadStateFor);
703 public: 703 public:
704 static ThreadState* state() { return ThreadState::current(); } 704 static ThreadState* state() { return ThreadState::current(); }
705 }; 705 };
706 706
707 } // namespace blink 707 } // namespace blink
708 708
709 #endif // ThreadState_h 709 #endif // ThreadState_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/heap/RunAllTests.cpp ('k') | third_party/WebKit/Source/platform/heap/ThreadState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698