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

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

Issue 1046123002: Oilpan: Split completeSweep() in idle tasks into chunks (Closed) Base URL: svn://svn.chromium.org/blink/trunk
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 | Annotate | Revision Log
« no previous file with comments | « Source/platform/heap/Heap.cpp ('k') | Source/platform/heap/ThreadState.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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 bool isMainThread() const { return this == mainThreadState(); } 330 bool isMainThread() const { return this == mainThreadState(); }
331 bool checkThread() const 331 bool checkThread() const
332 { 332 {
333 ASSERT(m_thread == currentThread()); 333 ASSERT(m_thread == currentThread());
334 return true; 334 return true;
335 } 335 }
336 336
337 void didV8GC(); 337 void didV8GC();
338 338
339 void performIdleGC(double deadlineSeconds); 339 void performIdleGC(double deadlineSeconds);
340 void performIdleCompleteSweep(double deadlineSeconds); 340 void performIdleLazySweep(double deadlineSeconds);
341 341
342 void scheduleIdleGC(); 342 void scheduleIdleGC();
343 void scheduleIdleCompleteSweep(); 343 void scheduleIdleLazySweep();
344 void schedulePreciseGC(); 344 void schedulePreciseGC();
345 void scheduleGCIfNeeded(); 345 void scheduleGCIfNeeded();
346 void setGCState(GCState); 346 void setGCState(GCState);
347 GCState gcState() const; 347 GCState gcState() const;
348 bool isInGC() const { return gcState() == GCRunning; } 348 bool isInGC() const { return gcState() == GCRunning; }
349 bool isSweepingInProgress() const 349 bool isSweepingInProgress() const
350 { 350 {
351 return gcState() == Sweeping || gcState() == SweepingAndPreciseGCSchedul ed || gcState() == SweepingAndIdleGCScheduled; 351 return gcState() == Sweeping || gcState() == SweepingAndPreciseGCSchedul ed || gcState() == SweepingAndIdleGCScheduled;
352 } 352 }
353 353
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 void collectAndReportMarkSweepStats() const; 537 void collectAndReportMarkSweepStats() const;
538 void reportMarkSweepStats(const char* statsName, const ClassAgeCountsMap&) c onst; 538 void reportMarkSweepStats(const char* statsName, const ClassAgeCountsMap&) c onst;
539 #endif 539 #endif
540 540
541 void pushWeakPointerCallback(void*, WeakPointerCallback); 541 void pushWeakPointerCallback(void*, WeakPointerCallback);
542 bool popAndInvokeWeakPointerCallback(Visitor*); 542 bool popAndInvokeWeakPointerCallback(Visitor*);
543 543
544 size_t objectPayloadSizeForTesting(); 544 size_t objectPayloadSizeForTesting();
545 545
546 void preSweep(); 546 void preSweep();
547 void postSweep();
547 void prepareHeapForTermination(); 548 void prepareHeapForTermination();
548 549
549 // Request to call a pref-finalizer of the target object before the object 550 // Request to call a pref-finalizer of the target object before the object
550 // is destructed. The class T must have USING_PRE_FINALIZER(). The 551 // is destructed. The class T must have USING_PRE_FINALIZER(). The
551 // argument should be |*this|. Registering a lot of objects affects GC 552 // argument should be |*this|. Registering a lot of objects affects GC
552 // performance. We should register an object only if the object really 553 // performance. We should register an object only if the object really
553 // requires pre-finalizer, and we should unregister the object if 554 // requires pre-finalizer, and we should unregister the object if
554 // pre-finalizer is unnecessary. 555 // pre-finalizer is unnecessary.
555 template<typename T> 556 template<typename T>
556 void registerPreFinalizer(T& target) 557 void registerPreFinalizer(T& target)
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 }; 779 };
779 780
780 template<> class ThreadStateFor<AnyThread> { 781 template<> class ThreadStateFor<AnyThread> {
781 public: 782 public:
782 static ThreadState* state() { return ThreadState::current(); } 783 static ThreadState* state() { return ThreadState::current(); }
783 }; 784 };
784 785
785 } // namespace blink 786 } // namespace blink
786 787
787 #endif // ThreadState_h 788 #endif // ThreadState_h
OLDNEW
« no previous file with comments | « Source/platform/heap/Heap.cpp ('k') | Source/platform/heap/ThreadState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698