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

Side by Side Diff: src/heap/spaces.h

Issue 2440693002: Revert of [heap] Start sweeper tasks after evacuation. (Closed)
Patch Set: Created 4 years, 2 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 | « src/heap/mark-compact.cc ('k') | src/heap/spaces.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_HEAP_SPACES_H_ 5 #ifndef V8_HEAP_SPACES_H_
6 #define V8_HEAP_SPACES_H_ 6 #define V8_HEAP_SPACES_H_
7 7
8 #include <list> 8 #include <list>
9 #include <memory> 9 #include <memory>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 // Checks whether |addr| can be a limit of addresses in this page. It's a 406 // Checks whether |addr| can be a limit of addresses in this page. It's a
407 // limit if it's in the page, or if it's just after the last byte of the page. 407 // limit if it's in the page, or if it's just after the last byte of the page.
408 bool ContainsLimit(Address addr) { 408 bool ContainsLimit(Address addr) {
409 return addr >= area_start() && addr <= area_end(); 409 return addr >= area_start() && addr <= area_end();
410 } 410 }
411 411
412 base::AtomicValue<ConcurrentSweepingState>& concurrent_sweeping_state() { 412 base::AtomicValue<ConcurrentSweepingState>& concurrent_sweeping_state() {
413 return concurrent_sweeping_; 413 return concurrent_sweeping_;
414 } 414 }
415 415
416 bool SweepingDone() {
417 return concurrent_sweeping_state().Value() == kSweepingDone;
418 }
419
420 // Manage live byte count, i.e., count of bytes in black objects. 416 // Manage live byte count, i.e., count of bytes in black objects.
421 inline void ResetLiveBytes(); 417 inline void ResetLiveBytes();
422 inline void IncrementLiveBytes(int by); 418 inline void IncrementLiveBytes(int by);
423 419
424 int LiveBytes() { 420 int LiveBytes() {
425 DCHECK_LE(static_cast<unsigned>(live_byte_count_), size_); 421 DCHECK_LE(static_cast<unsigned>(live_byte_count_), size_);
426 return live_byte_count_; 422 return live_byte_count_;
427 } 423 }
428 424
429 void SetLiveBytes(int live_bytes) { 425 void SetLiveBytes(int live_bytes) {
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 760
765 // WaitUntilSweepingCompleted only works when concurrent sweeping is in 761 // WaitUntilSweepingCompleted only works when concurrent sweeping is in
766 // progress. In particular, when we know that right before this call a 762 // progress. In particular, when we know that right before this call a
767 // sweeper thread was sweeping this page. 763 // sweeper thread was sweeping this page.
768 void WaitUntilSweepingCompleted() { 764 void WaitUntilSweepingCompleted() {
769 mutex_->Lock(); 765 mutex_->Lock();
770 mutex_->Unlock(); 766 mutex_->Unlock();
771 DCHECK(SweepingDone()); 767 DCHECK(SweepingDone());
772 } 768 }
773 769
770 bool SweepingDone() {
771 return concurrent_sweeping_state().Value() == kSweepingDone;
772 }
773
774 void ResetFreeListStatistics(); 774 void ResetFreeListStatistics();
775 775
776 size_t AvailableInFreeList(); 776 size_t AvailableInFreeList();
777 777
778 size_t LiveBytesFromFreeList() { 778 size_t LiveBytesFromFreeList() {
779 DCHECK_GE(area_size(), wasted_memory() + available_in_free_list()); 779 DCHECK_GE(area_size(), wasted_memory() + available_in_free_list());
780 return area_size() - wasted_memory() - available_in_free_list(); 780 return area_size() - wasted_memory() - available_in_free_list();
781 } 781 }
782 782
783 FreeListCategory* free_list_category(FreeListCategoryType type) { 783 FreeListCategory* free_list_category(FreeListCategoryType type) {
(...skipping 2149 matching lines...) Expand 10 before | Expand all | Expand 10 after
2933 PageIterator old_iterator_; 2933 PageIterator old_iterator_;
2934 PageIterator code_iterator_; 2934 PageIterator code_iterator_;
2935 PageIterator map_iterator_; 2935 PageIterator map_iterator_;
2936 LargePageIterator lo_iterator_; 2936 LargePageIterator lo_iterator_;
2937 }; 2937 };
2938 2938
2939 } // namespace internal 2939 } // namespace internal
2940 } // namespace v8 2940 } // namespace v8
2941 2941
2942 #endif // V8_HEAP_SPACES_H_ 2942 #endif // V8_HEAP_SPACES_H_
OLDNEW
« no previous file with comments | « src/heap/mark-compact.cc ('k') | src/heap/spaces.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698