Martin Kustermann
dae308461c
[vm/concurrency] Share [Heap] and [SharedClassTable] between all isolates within one isolate group
...
This CL:
* Moves [Heap]/[SharedClassTable] from [Isolate] to [IsolateGroup], which
will make all isolates in the group use the same heap. The GC will use
the shared class table for object size information.
* Adds support for entering/leaving an isolate group as a helper thread
(e.g. via [Thread::EnterIsolateGroupAsHelper]). The current active
isolate group can be accessed via TLS `IsolateGroup::Current()` or
`Thread::isolate_group_`. When entering as a helper thread there will be
no current isolate.
* Changes the GC to use the above mechanism and ensures GC works without
a currently active isolate. The GC will use information purely available via
[IsolateGroup]. The GC will iterate all isolates within an isolate
group e.g. for scanning roots.
* Makes spawning of new isolates start in their own isolate group.
Once the isolate is fully functional it's heap will be merged into
the original isolate group
* Moves ApiState, containing persistent and weak persistent handles,
from [Isolate] to [IsolateGroup], plus adds appropriate locking.
Issue https://github.com/dart-lang/sdk/issues/36097
Change-Id: Ia8e1d8aa78750e8400864200f4825395a182c004
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126646
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2020-02-20 21:08:35 +00:00
..
2020-02-18 08:42:16 +00:00
2019-03-15 22:35:25 +00:00
2019-03-15 22:35:25 +00:00
2020-02-18 08:42:16 +00:00
2019-04-02 20:06:19 +00:00
2020-02-06 00:04:09 +00:00
2019-04-02 20:06:19 +00:00
2019-09-19 03:57:30 +00:00
2019-12-27 17:30:05 +00:00
2019-12-27 17:30:05 +00:00
2019-09-19 03:57:30 +00:00
2018-05-03 17:59:44 +00:00
2018-03-14 23:52:12 +00:00
2019-04-22 20:15:43 +00:00
2018-10-29 15:11:16 +00:00
2019-05-15 21:27:19 +00:00
2018-06-27 17:13:27 +00:00
2019-05-15 21:27:19 +00:00
2019-05-15 21:27:19 +00:00
2020-01-28 23:36:14 +00:00
2019-09-24 20:43:20 +00:00
2020-02-06 00:04:09 +00:00
2020-02-06 00:04:09 +00:00
2019-12-27 17:30:05 +00:00
2019-12-27 17:30:05 +00:00
2020-02-06 00:04:09 +00:00
2019-06-26 20:57:46 +00:00
2019-02-15 01:12:01 +00:00
2019-02-15 01:12:01 +00:00
2019-02-15 01:12:01 +00:00
2019-02-15 01:12:01 +00:00
2018-03-28 23:16:09 +00:00
2020-02-10 22:39:05 +00:00
2019-04-22 20:15:43 +00:00
2018-05-23 21:01:44 +00:00
2019-12-18 18:02:41 +00:00
2019-12-10 12:26:05 +00:00
2019-01-29 15:10:34 +00:00
2020-02-19 09:28:29 +00:00
2019-04-22 20:15:43 +00:00
2019-11-06 16:28:12 +00:00
2019-02-15 23:28:17 +00:00
2019-11-06 16:28:12 +00:00
2019-05-13 21:17:51 +00:00
2019-11-06 16:28:12 +00:00
2019-02-15 23:28:17 +00:00
2019-11-06 16:28:12 +00:00
2019-02-15 23:28:17 +00:00
2019-11-06 16:28:12 +00:00
2019-05-13 21:17:51 +00:00
2019-10-07 22:10:59 +00:00
2019-11-06 16:28:12 +00:00
2020-02-06 00:04:09 +00:00
2020-02-06 00:04:09 +00:00
2019-09-24 15:03:19 +00:00
2019-09-24 15:03:19 +00:00
2019-09-24 15:03:19 +00:00
2019-09-24 15:03:19 +00:00
2019-09-24 15:03:19 +00:00
2019-02-15 23:28:17 +00:00
2018-09-17 20:44:52 +00:00
2019-02-15 23:28:17 +00:00
2019-02-15 23:28:17 +00:00
2020-02-06 00:04:09 +00:00
2020-02-06 19:44:07 +00:00
2020-02-06 00:04:09 +00:00
2020-02-14 17:49:42 +00:00
2020-02-14 17:49:42 +00:00
2018-09-06 02:23:21 +00:00
2018-11-26 16:30:33 +00:00
2019-09-05 21:41:42 +00:00
2019-02-15 23:28:17 +00:00
2019-09-09 23:16:52 +00:00
2019-09-05 21:41:42 +00:00
2020-02-14 17:49:42 +00:00
2020-01-31 17:07:22 +00:00
2020-02-06 00:04:09 +00:00
2018-10-24 13:30:16 +00:00
2020-02-17 11:12:15 +00:00
2019-12-11 18:15:27 +00:00
2018-09-06 02:23:21 +00:00
2019-04-19 16:38:44 +00:00
2019-04-19 16:38:44 +00:00
2018-05-01 01:57:41 +00:00
2019-04-19 16:38:44 +00:00
2019-09-05 14:54:48 +00:00
2019-09-19 03:57:30 +00:00
2019-10-21 17:44:18 +00:00
2019-10-21 17:44:18 +00:00
2020-01-02 23:00:36 +00:00
2020-01-02 23:00:36 +00:00
2020-02-06 00:04:09 +00:00
2020-01-28 23:36:14 +00:00
2020-02-20 21:08:35 +00:00
2019-05-28 19:12:35 +00:00
2019-01-15 22:07:51 +00:00
2019-08-01 23:32:40 +00:00
2019-04-22 20:15:43 +00:00
2019-07-03 10:54:24 +00:00
2019-04-22 20:15:43 +00:00
2019-04-22 20:15:43 +00:00
2019-09-24 20:43:20 +00:00
2019-09-24 20:43:20 +00:00
2019-09-24 20:43:20 +00:00
2019-10-18 10:30:48 +00:00
2019-10-18 10:30:48 +00:00
2018-09-06 02:23:21 +00:00
2019-10-18 10:30:48 +00:00
2020-02-20 21:08:35 +00:00
2019-06-07 16:38:43 +00:00
2020-02-20 21:08:35 +00:00
2020-02-20 21:08:35 +00:00
2019-04-22 20:15:43 +00:00
2019-11-06 16:28:12 +00:00
2019-10-09 21:48:20 +00:00
2020-01-28 23:36:14 +00:00
2019-09-05 21:41:42 +00:00
2018-04-23 22:39:32 +00:00
2018-05-17 16:20:06 +00:00
2019-09-05 21:41:42 +00:00
2019-10-23 18:08:16 +00:00
2019-04-22 20:15:43 +00:00
2019-04-22 20:15:43 +00:00
2019-04-22 20:15:43 +00:00
2019-10-31 22:17:17 +00:00
2019-04-22 20:15:43 +00:00
2019-10-23 18:08:16 +00:00
2018-05-17 16:20:06 +00:00
2019-07-03 10:54:24 +00:00
2019-07-03 10:54:24 +00:00
2020-02-17 11:12:15 +00:00
2020-02-17 11:12:15 +00:00
2019-11-06 16:28:12 +00:00
2019-04-19 16:38:44 +00:00
2019-10-07 22:10:59 +00:00
2019-09-05 21:41:42 +00:00
2019-02-15 23:28:17 +00:00
2020-02-10 22:39:05 +00:00
2019-09-05 14:54:48 +00:00
2019-09-05 14:54:48 +00:00
2019-11-06 16:28:12 +00:00
2019-11-06 16:28:12 +00:00
2019-11-06 16:28:12 +00:00
2019-11-06 16:28:12 +00:00
2019-11-06 16:28:12 +00:00
2019-11-06 16:28:12 +00:00
2018-11-26 16:30:33 +00:00
2019-09-05 21:41:42 +00:00
2019-08-01 23:32:40 +00:00
2019-10-25 19:21:56 +00:00
2019-02-13 20:29:46 +00:00
2019-02-13 20:29:46 +00:00
2019-02-13 20:29:46 +00:00
2019-02-26 01:00:26 +00:00
2018-11-09 18:44:49 +00:00
2019-02-13 20:29:46 +00:00
2018-05-24 16:15:03 +00:00
2018-05-23 21:01:44 +00:00
2018-05-24 20:01:51 +00:00
2019-05-10 18:22:28 +00:00
2018-05-24 20:01:51 +00:00
2018-05-24 20:01:51 +00:00
2019-04-22 20:15:43 +00:00
2018-05-24 20:01:51 +00:00
2020-01-28 23:36:14 +00:00
2020-01-28 23:36:14 +00:00