Flutter Engine
The Flutter Engine
Classes | Namespaces | Macros | Typedefs
isolate.h File Reference
#include <functional>
#include <memory>
#include <utility>
#include "include/dart_api.h"
#include "platform/assert.h"
#include "platform/atomic.h"
#include "vm/base_isolate.h"
#include "vm/class_table.h"
#include "vm/dispatch_table.h"
#include "vm/exceptions.h"
#include "vm/ffi_callback_metadata.h"
#include "vm/field_table.h"
#include "vm/fixed_cache.h"
#include "vm/growable_array.h"
#include "vm/handles.h"
#include "vm/heap/verifier.h"
#include "vm/intrusive_dlist.h"
#include "vm/megamorphic_cache_table.h"
#include "vm/metrics.h"
#include "vm/os_thread.h"
#include "vm/random.h"
#include "vm/tags.h"
#include "vm/thread.h"
#include "vm/thread_pool.h"
#include "vm/thread_stack_resource.h"
#include "vm/token_position.h"
#include "vm/virtual_memory.h"

Go to the source code of this file.

Classes

class  dart::IsolateVisitor
 
class  dart::Callable
 
class  dart::LambdaCallable< T >
 
class  dart::IsolateGroupSource
 
class  dart::IdleTimeHandler
 
class  dart::DisableIdleTimerScope
 
class  dart::MutatorThreadPool
 
class  dart::IsolateGroup
 
class  dart::Bequest
 
class  dart::Isolate
 
class  dart::StartIsolateScope
 
class  dart::EnterIsolateGroupScope
 
class  dart::NoActiveIsolateScope
 
class  dart::ActiveIsolateScope
 

Namespaces

namespace  dart
 

Macros

#define BOOL_ISOLATE_GROUP_FLAG_LIST(V)
 
#define BOOL_ISOLATE_FLAG_LIST(V)
 
#define ISOLATE_METRIC_ACCESSOR(type, variable, name, unit)    type* Get##variable##Metric() { return &metric_##variable##_; }
 
#define FLAG_FOR_PRECOMPILER(from_field, from_flag)   (from_flag)
 
#define FLAG_FOR_NONPRODUCT(from_field, from_flag)   (from_field)
 
#define FLAG_FOR_PRODUCT(from_field, from_flag)   (from_field)
 
#define DECLARE_GETTER(when, name, bitname, isolate_flag_name, flag_name)
 
#define ISOLATE_GROUP_FLAG_BITS(V)
 
#define DECLARE_BIT(Name)   k##Name##Bit,
 
#define DECLARE_BITFIELD(Name)    class Name##Bit : public BitField<uint32_t, bool, k##Name##Bit, 1> {};
 
#define ISOLATE_METRIC_VARIABLE(type, variable, name, unit)    type metric_##variable##_;
 
#define ISOLATE_METRIC_ACCESSOR(type, variable, name, unit)    type* Get##variable##Metric() { return &metric_##variable##_; }
 
#define FLAG_FOR_PRECOMPILER(from_field, from_flag)   (from_flag)
 
#define FLAG_FOR_NONPRODUCT(from_field, from_flag)   (from_field)
 
#define FLAG_FOR_PRODUCT(from_field, from_flag)   (from_field)
 
#define DECLARE_GETTER(when, name, bitname, isolate_flag_name, flag_name)
 
#define ISOLATE_FLAG_BITS(V)
 
#define DECLARE_BIT(Name)   k##Name##Bit,
 
#define DECLARE_BITFIELD(Name)    class Name##Bit : public BitField<uint32_t, bool, k##Name##Bit, 1> {};
 
#define ISOLATE_METRIC_VARIABLE(type, variable, name, unit)    type metric_##variable##_;
 
#define REUSABLE_FRIEND_DECLARATION(name)    friend class Reusable##name##HandleScope;
 

Typedefs

typedef FixedCache< intptr_t, ExceptionHandlerInfo, 16 > dart::HandlerInfoCache
 
typedef FixedCache< intptr_t, CatchEntryMovesRefPtr, 16 > dart::CatchEntryMovesCache
 

Macro Definition Documentation

◆ BOOL_ISOLATE_FLAG_LIST

#define BOOL_ISOLATE_FLAG_LIST (   V)
Value:
V(NONPRODUCT, is_system_isolate, IsSystemIsolate, is_system_isolate, false) \
V(NONPRODUCT, is_service_isolate, IsServiceIsolate, is_service_isolate, \
false) \
V(NONPRODUCT, is_kernel_isolate, IsKernelIsolate, is_kernel_isolate, false)
#define V(name)
Definition: raw_object.h:125

Definition at line 152 of file isolate.h.

◆ BOOL_ISOLATE_GROUP_FLAG_LIST

#define BOOL_ISOLATE_GROUP_FLAG_LIST (   V)
Value:
V(PRECOMPILER, obfuscate, Obfuscate, obfuscate, false) \
V(NONPRODUCT, asserts, EnableAsserts, enable_asserts, FLAG_enable_asserts) \
V(NONPRODUCT, use_field_guards, UseFieldGuards, use_field_guards, \
FLAG_use_field_guards) \
V(PRODUCT, should_load_vmservice_library, ShouldLoadVmService, \
load_vmservice_library, false) \
V(NONPRODUCT, use_osr, UseOsr, use_osr, FLAG_use_osr) \
V(NONPRODUCT, snapshot_is_dontneed_safe, SnapshotIsDontNeedSafe, \
snapshot_is_dontneed_safe, false) \
V(NONPRODUCT, branch_coverage, BranchCoverage, branch_coverage, \
FLAG_branch_coverage) \
V(NONPRODUCT, coverage, Coverage, coverage, FLAG_coverage)

Definition at line 136 of file isolate.h.

◆ DECLARE_BIT [1/2]

#define DECLARE_BIT (   Name)    k##Name##Bit,

Definition at line 1583 of file isolate.h.

◆ DECLARE_BIT [2/2]

#define DECLARE_BIT (   Name)    k##Name##Bit,

Definition at line 1583 of file isolate.h.

◆ DECLARE_BITFIELD [1/2]

#define DECLARE_BITFIELD (   Name)     class Name##Bit : public BitField<uint32_t, bool, k##Name##Bit, 1> {};

Definition at line 1588 of file isolate.h.

◆ DECLARE_BITFIELD [2/2]

#define DECLARE_BITFIELD (   Name)     class Name##Bit : public BitField<uint32_t, bool, k##Name##Bit, 1> {};

Definition at line 1588 of file isolate.h.

◆ DECLARE_GETTER [1/2]

#define DECLARE_GETTER (   when,
  name,
  bitname,
  isolate_flag_name,
  flag_name 
)
Value:
bool name() const { \
return FLAG_FOR_##when(bitname##Bit::decode(isolate_group_flags_), \
flag_name); \
}
DEF_SWITCHES_START aot vmservice shared library name
Definition: switches.h:32
static DecodeResult decode(std::string path)
Definition: png_codec.cpp:124

Definition at line 1411 of file isolate.h.

◆ DECLARE_GETTER [2/2]

#define DECLARE_GETTER (   when,
  name,
  bitname,
  isolate_flag_name,
  flag_name 
)
Value:
bool name() const { \
return FLAG_FOR_##when(LoadIsolateFlagsBit<bitname##Bit>(), flag_name); \
}

Definition at line 1411 of file isolate.h.

◆ FLAG_FOR_NONPRODUCT [1/2]

#define FLAG_FOR_NONPRODUCT (   from_field,
  from_flag 
)    (from_field)

Definition at line 1404 of file isolate.h.

◆ FLAG_FOR_NONPRODUCT [2/2]

#define FLAG_FOR_NONPRODUCT (   from_field,
  from_flag 
)    (from_field)

Definition at line 1404 of file isolate.h.

◆ FLAG_FOR_PRECOMPILER [1/2]

#define FLAG_FOR_PRECOMPILER (   from_field,
  from_flag 
)    (from_flag)

Definition at line 1400 of file isolate.h.

◆ FLAG_FOR_PRECOMPILER [2/2]

#define FLAG_FOR_PRECOMPILER (   from_field,
  from_flag 
)    (from_flag)

Definition at line 1400 of file isolate.h.

◆ FLAG_FOR_PRODUCT [1/2]

#define FLAG_FOR_PRODUCT (   from_field,
  from_flag 
)    (from_field)

Definition at line 1409 of file isolate.h.

◆ FLAG_FOR_PRODUCT [2/2]

#define FLAG_FOR_PRODUCT (   from_field,
  from_flag 
)    (from_field)

Definition at line 1409 of file isolate.h.

◆ ISOLATE_FLAG_BITS

#define ISOLATE_FLAG_BITS (   V)
Value:
V(ErrorsFatal) \
V(IsRunnable) \
V(IsVMIsolate) \
V(IsServiceIsolate) \
V(IsKernelIsolate) \
V(ResumeRequest) \
V(HasAttemptedStepping) \
V(ShouldPausePostServiceRequest) \
V(IsSystemIsolate) \
V(IsServiceRegistered)

Definition at line 1569 of file isolate.h.

◆ ISOLATE_GROUP_FLAG_BITS

#define ISOLATE_GROUP_FLAG_BITS (   V)
Value:
V(AllClassesFinalized) \
V(EnableAsserts) \
V(HasAttemptedReload) \
V(RemappingCids) \
V(ShouldLoadVmService) \
V(Obfuscate) \
V(UseFieldGuards) \
V(UseOsr) \
V(SnapshotIsDontNeedSafe) \
V(BranchCoverage) \
V(Coverage) \
V(HasDynamicallyExtendableClasses)

Definition at line 792 of file isolate.h.

◆ ISOLATE_METRIC_ACCESSOR [1/2]

#define ISOLATE_METRIC_ACCESSOR (   type,
  variable,
  name,
  unit 
)     type* Get##variable##Metric() { return &metric_##variable##_; }

Definition at line 1337 of file isolate.h.

◆ ISOLATE_METRIC_ACCESSOR [2/2]

#define ISOLATE_METRIC_ACCESSOR (   type,
  variable,
  name,
  unit 
)     type* Get##variable##Metric() { return &metric_##variable##_; }

Definition at line 1337 of file isolate.h.

◆ ISOLATE_METRIC_VARIABLE [1/2]

#define ISOLATE_METRIC_VARIABLE (   type,
  variable,
  name,
  unit 
)     type metric_##variable##_;

Definition at line 1646 of file isolate.h.

◆ ISOLATE_METRIC_VARIABLE [2/2]

#define ISOLATE_METRIC_VARIABLE (   type,
  variable,
  name,
  unit 
)     type metric_##variable##_;

Definition at line 1646 of file isolate.h.

◆ REUSABLE_FRIEND_DECLARATION

#define REUSABLE_FRIEND_DECLARATION (   name)     friend class Reusable##name##HandleScope;

Definition at line 1743 of file isolate.h.