File tree Expand file tree Collapse file tree 2 files changed +9
-10
lines changed Expand file tree Collapse file tree 2 files changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -170,15 +170,13 @@ bool AsyncHooks::pop_async_context(double async_id) {
170170}
171171
172172void AsyncHooks::clear_async_id_stack () {
173- if (env ()->can_call_into_js ()) {
173+ if (!js_execution_async_resources_. IsEmpty () && env ()->can_call_into_js ()) {
174174 Isolate* isolate = env ()->isolate ();
175175 HandleScope handle_scope (isolate);
176- if (!js_execution_async_resources_.IsEmpty ()) {
177- USE (PersistentToLocal::Strong (js_execution_async_resources_)
178- ->Set (env ()->context (),
179- env ()->length_string (),
180- Integer::NewFromUnsigned (isolate, 0 )));
181- }
176+ USE (PersistentToLocal::Strong (js_execution_async_resources_)
177+ ->Set (env ()->context (),
178+ env ()->length_string (),
179+ Integer::NewFromUnsigned (isolate, 0 )));
182180 }
183181
184182 native_execution_async_resources_.clear ();
Original file line number Diff line number Diff line change @@ -1015,6 +1015,10 @@ class Environment : public MemoryRetainer {
10151015 uv_async_t task_queues_async_;
10161016 int64_t task_queues_async_refs_ = 0 ;
10171017
1018+ // These may be read by ctors and should be listed before complex fields.
1019+ std::atomic_bool is_stopping_{false };
1020+ std::atomic_bool can_call_into_js_{true };
1021+
10181022 AsyncHooks async_hooks_;
10191023 ImmediateInfo immediate_info_;
10201024 AliasedInt32Array timeout_info_;
@@ -1092,7 +1096,6 @@ class Environment : public MemoryRetainer {
10921096
10931097 bool has_serialized_options_ = false ;
10941098
1095- std::atomic_bool can_call_into_js_ { true };
10961099 uint64_t flags_;
10971100 uint64_t thread_id_;
10981101 std::unordered_set<worker::Worker*> sub_worker_contexts_;
@@ -1150,8 +1153,6 @@ class Environment : public MemoryRetainer {
11501153 CleanupQueue cleanup_queue_;
11511154 bool started_cleanup_ = false ;
11521155
1153- std::atomic_bool is_stopping_ { false };
1154-
11551156 std::unordered_set<int > unmanaged_fds_;
11561157
11571158 std::function<void (Environment*, ExitCode)> process_exit_handler_{
You can’t perform that action at this time.
0 commit comments