[VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down
the service isolate.
The service isolate request for shutdown uses a Dart level message
for exiting the isolate, this shuts down the isolate but does not
completely bring the isolate down if there are some open ports. We
have a timer isolate started in the VM isolate and if the shutdown
happens soon enough this port is still open.
Change-Id: Icfa07c91b8692eb76ba8502063cf6f5cf04832a5
Reviewed-on: https://dart-review.googlesource.com/c/81200
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
diff --git a/runtime/lib/vmservice.cc b/runtime/lib/vmservice.cc
index 76d5fc9..c682868 100644
--- a/runtime/lib/vmservice.cc
+++ b/runtime/lib/vmservice.cc
@@ -140,6 +140,7 @@
OS::PrintErr("vm-service: live ports = %" Pd "\n",
message_handler->live_ports());
}
+ Isolate::KillIfExists(isolate, Isolate::kInternalKillMsg);
return Object::null();
}