Flutter Engine
The Flutter Engine
Classes | Namespaces | Macros | Typedefs | Functions
isolate_reload.h File Reference
#include <functional>
#include <memory>
#include "include/dart_tools_api.h"
#include "vm/compiler/jit/compiler.h"
#include "vm/globals.h"
#include "vm/growable_array.h"
#include "vm/hash_map.h"
#include "vm/heap/become.h"
#include "vm/heap/safepoint.h"
#include "vm/log.h"
#include "vm/object.h"

Go to the source code of this file.

Classes

struct  dart::FieldMapping
 
class  dart::InstanceMorpher
 
class  dart::ReasonForCancelling
 
class  dart::ClassReasonForCancelling
 
class  dart::IsolateGroupReloadContext
 
class  dart::ProgramReloadContext
 
class  dart::CallSiteResetter
 

Namespaces

namespace  dart
 

Macros

#define TIR_Print(format, ...)    if (FLAG_trace_reload) Log::Current()->Print(format, ##__VA_ARGS__)
 
#define VTIR_Print(format, ...)    if (FLAG_trace_reload_verbose) Log::Current()->Print(format, ##__VA_ARGS__)
 
#define RELOAD_OPERATION_SCOPE(thread_expr)
 

Typedefs

using dart::FieldMappingArray = ZoneGrowableArray< FieldMapping >
 
using dart::FieldOffsetArray = ZoneGrowableArray< intptr_t >
 

Functions

 DECLARE_FLAG (bool, trace_reload)
 
 DECLARE_FLAG (bool, trace_reload_verbose)
 

Macro Definition Documentation

◆ RELOAD_OPERATION_SCOPE

#define RELOAD_OPERATION_SCOPE (   thread_expr)
Value:
auto _thread_ = (thread_expr); \
\
/* As the background compiler is a mutator it participates in safepoint */ \
/* operations. Though the BG compiler won't check into reload safepoint */ \
/* requests - as it's not a well-defined place to do reload. */ \
/* So we ensure the background compiler is stopped before we get all */ \
/* other mutators to reload safepoints. */ \
NoBackgroundCompilerScope _stop_bg_compiler_(_thread_); \
\
/* This will enable the current thread to perform reload operations (as */ \
/* well as check-in with other thread's reload operations). */ \
ReloadParticipationScope _allow_reload_(_thread_); \
\
/* The actual reload operation that will ensure all other mutators are */ \
/* stopped at well-defined places where reload can happen. */ \
ReloadSafepointOperationScope _safepoint_operation_(_thread_);

Definition at line 443 of file isolate_reload.h.

◆ TIR_Print

#define TIR_Print (   format,
  ... 
)     if (FLAG_trace_reload) Log::Current()->Print(format, ##__VA_ARGS__)

Definition at line 30 of file isolate_reload.h.

◆ VTIR_Print

#define VTIR_Print (   format,
  ... 
)     if (FLAG_trace_reload_verbose) Log::Current()->Print(format, ##__VA_ARGS__)

Definition at line 39 of file isolate_reload.h.

Function Documentation

◆ DECLARE_FLAG() [1/2]

DECLARE_FLAG ( bool  ,
trace_reload   
)

◆ DECLARE_FLAG() [2/2]

DECLARE_FLAG ( bool  ,
trace_reload_verbose   
)