Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dart::NoReloadScope Class Reference

#include <thread.h>

Inheritance diagram for dart::NoReloadScope:
dart::ThreadStackResource dart::StackResource

Public Member Functions

 NoReloadScope (Thread *thread)
 
 ~NoReloadScope ()
 
- Public Member Functions inherited from dart::ThreadStackResource
 ThreadStackResource (Thread *T)
 
 ~ThreadStackResource ()
 
Threadthread () const
 
Isolateisolate () const
 
IsolateGroupisolate_group () const
 
- Public Member Functions inherited from dart::StackResource
 StackResource (ThreadState *thread)
 
virtual ~StackResource ()
 
ThreadStatethread () const
 

Additional Inherited Members

- Static Public Member Functions inherited from dart::StackResource
static void Unwind (ThreadState *thread)
 
static void UnwindAbove (ThreadState *thread, StackResource *new_top)
 

Detailed Description

Definition at line 1561 of file thread.h.

Constructor & Destructor Documentation

◆ NoReloadScope()

dart::NoReloadScope::NoReloadScope ( Thread thread)
explicit

Definition at line 1426 of file thread.cc.

1427#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
1428 thread->no_reload_scope_depth_++;
1429 ASSERT(thread->no_reload_scope_depth_ >= 0);
1430#endif // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
1431}
#define ASSERT(E)

◆ ~NoReloadScope()

dart::NoReloadScope::~NoReloadScope ( )

Definition at line 1433 of file thread.cc.

1433 {
1434#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
1435 thread()->no_reload_scope_depth_ -= 1;
1436 ASSERT(thread()->no_reload_scope_depth_ >= 0);
1437 auto isolate = thread()->isolate();
1438 const intptr_t state = thread()->safepoint_state();
1439
1440 if (thread()->no_reload_scope_depth_ == 0) {
1441 // If we were asked to go to a reload safepoint & block for a reload
1442 // safepoint operation on another thread - *while* being inside
1443 // [NoReloadScope] - we may have handled & ignored the OOB message telling
1444 // us to reload.
1445 //
1446 // Since we're exiting now the [NoReloadScope], we'll make another OOB
1447 // reload request message to ourselves, which will be handled in
1448 // well-defined place where we can perform reload.
1449 if (isolate != nullptr &&
1453 }
1454 }
1455#endif // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
1456}
void SendInternalLibMessage(LibMsgId msg_id, uint64_t capability)
Definition isolate.cc:997
uword safepoint_state()
Definition thread.h:1018
static bool IsSafepointLevelRequested(uword state, SafepointLevel level)
Definition thread.h:942
Isolate * isolate() const
Definition thread.h:533
AtkStateType state
@ kGCAndDeoptAndReload
Definition thread.h:295

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