Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
dart::EpilogueState Class Reference

Public Member Functions

 EpilogueState (Page *evac_page, StoreBufferBlock *block, Page *new_page, Mutex *pages_lock)
 
bool NextEvacPage (Page **page)
 
bool NextBlock (StoreBufferBlock **block)
 
bool NextNewPage (Page **page)
 
bool TakeOOM ()
 
bool TakeWeakHandles ()
 
bool TakeWeakTables ()
 
bool TakeIdRing ()
 
bool TakeRoots ()
 
bool TakeResetProgressBars ()
 
void AddNewFreeSize (intptr_t size)
 
intptr_t NewFreeSize ()
 

Detailed Description

Definition at line 554 of file incremental_compactor.cc.

Constructor & Destructor Documentation

◆ EpilogueState()

dart::EpilogueState::EpilogueState ( Page evac_page,
StoreBufferBlock block,
Page new_page,
Mutex pages_lock 
)
inline

Definition at line 556 of file incremental_compactor.cc.

560 : evac_page_(evac_page),
561 block_(block),
562 new_page_(new_page),
563 pages_lock_(pages_lock) {}

Member Function Documentation

◆ AddNewFreeSize()

void dart::EpilogueState::AddNewFreeSize ( intptr_t  size)
inline

Definition at line 612 of file incremental_compactor.cc.

612{ new_free_size_ += size; }
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259

◆ NewFreeSize()

intptr_t dart::EpilogueState::NewFreeSize ( )
inline

Definition at line 613 of file incremental_compactor.cc.

613{ return new_free_size_; }

◆ NextBlock()

bool dart::EpilogueState::NextBlock ( StoreBufferBlock **  block)
inline

Definition at line 580 of file incremental_compactor.cc.

580 {
581 MutexLocker ml(pages_lock_);
582 if (block_ != nullptr) {
583 StoreBufferBlock* current = block_;
584 block_ = current->next();
585 current->set_next(nullptr);
586 *block = current;
587 return true;
588 }
589 return false;
590 }
PointerBlock< Size > * next() const
Definition: pointer_block.h:30
StoreBuffer::Block StoreBufferBlock

◆ NextEvacPage()

bool dart::EpilogueState::NextEvacPage ( Page **  page)
inline

Definition at line 565 of file incremental_compactor.cc.

565 {
566 // Needs to be the old_space pages lock since evacuation may also allocate
567 // new pages and race with page->next_.
568 MutexLocker ml(pages_lock_);
569 while (evac_page_ != nullptr) {
570 Page* current = evac_page_;
571 evac_page_ = current->next();
572 if (current->is_evacuation_candidate()) {
573 *page = current;
574 return true;
575 }
576 }
577 return false;
578 }
Page * next() const
Definition: page.h:102

◆ NextNewPage()

bool dart::EpilogueState::NextNewPage ( Page **  page)
inline

Definition at line 592 of file incremental_compactor.cc.

592 {
593 MutexLocker ml(pages_lock_);
594 if (new_page_ != nullptr) {
595 Page* current = new_page_;
596 new_page_ = current->next();
597 *page = current;
598 return true;
599 }
600 return false;
601 }

◆ TakeIdRing()

bool dart::EpilogueState::TakeIdRing ( )
inline

Definition at line 606 of file incremental_compactor.cc.

606{ return id_ring_slice_.exchange(false); }
T exchange(T arg, std::memory_order order=std::memory_order_relaxed)
Definition: atomic.h:48

◆ TakeOOM()

bool dart::EpilogueState::TakeOOM ( )
inline

Definition at line 603 of file incremental_compactor.cc.

603{ return oom_slice_.exchange(false); }

◆ TakeResetProgressBars()

bool dart::EpilogueState::TakeResetProgressBars ( )
inline

Definition at line 608 of file incremental_compactor.cc.

608 {
609 return reset_progress_bars_slice_.exchange(false);
610 }

◆ TakeRoots()

bool dart::EpilogueState::TakeRoots ( )
inline

Definition at line 607 of file incremental_compactor.cc.

607{ return roots_slice_.exchange(false); }

◆ TakeWeakHandles()

bool dart::EpilogueState::TakeWeakHandles ( )
inline

Definition at line 604 of file incremental_compactor.cc.

604{ return weak_handles_slice_.exchange(false); }

◆ TakeWeakTables()

bool dart::EpilogueState::TakeWeakTables ( )
inline

Definition at line 605 of file incremental_compactor.cc.

605{ return weak_tables_slice_.exchange(false); }

The documentation for this class was generated from the following file: