Martin Kustermann
fb43937e20
[vm] Make Thread::IsAtSafepoint() only be true if thread is blocked at a "safe" point
...
During safepoint we can distinguish between
* owner of the safepoint operation (which is running code)
* everyone else (which are all blocked
Currently `Thread::IsAtSafepoint()` will return true for both. Since the
thread owning the safepoint operation is running, it's not actually
guaranteed that it's at "safe" point (e.g. to GC or to deopt) - it
really depends on what it's doing.
=> This CL will change it so that only actually parked threads will
have `Thread::IsAtSafepoint()`.
In order to do that we change varrious usages of `IsAtSafepoint()` to be
more precise:
* `Thread::OwnsSafepoint()`: True if this thread owns the
active safepoint. The thread is running.
* `Thread::OwnsGCSafepoint()`: True if the active safepoint is a GC
(or Deopt) safepoint and this thread owns it. The thread is running.
* `Thread::OwnsDeoptSafepoint()`: True if the active safepoint is a
Deopt safepoint and this thread owns it. The thread is running.
* `Thread::CanAcquireSafepointLocks()`: True if the thread is allowed
to acquire safepoint locks.
* `Thread::IsAtSafepoint()`: true if this thread is parked at a
safepoint
TEST=ci
Change-Id: I1a5a6727e84843ae79e0a344c438da19b7d6d916
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/295781
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2023-04-19 08:47:31 +00:00
..
2023-04-19 08:47:31 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2021-12-24 06:44:34 +00:00
2023-04-12 01:11:05 +00:00
2023-04-18 20:56:00 +00:00
2023-04-12 01:11:05 +00:00
2022-03-10 23:48:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2022-05-31 15:36:33 +00:00
2023-04-12 20:32:29 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-03-06 22:06:59 +00:00
2022-12-13 15:28:19 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2022-12-06 04:04:23 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2022-01-20 00:57:57 +00:00
2021-09-02 14:14:35 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-01-25 14:08:27 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2023-01-06 07:48:22 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2021-07-02 19:06:45 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-18 20:56:00 +00:00
2022-09-01 20:36:12 +00:00
2023-04-12 01:11:05 +00:00
2022-09-13 21:16:28 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2021-09-02 14:14:35 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-01-16 15:12:38 +00:00
2023-04-12 01:11:05 +00:00
2023-03-27 14:42:01 +00:00
2023-01-16 15:12:38 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2021-07-02 19:06:45 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2021-10-19 21:25:43 +00:00
2021-10-19 21:25:43 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2022-08-05 11:53:37 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2022-03-31 06:40:51 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-18 19:55:03 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2022-08-17 16:18:35 +00:00
2023-04-12 20:32:29 +00:00
2022-03-24 10:08:01 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2022-05-31 15:36:33 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2022-05-31 15:36:33 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2021-07-02 19:06:45 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00
2022-03-09 18:02:34 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 01:11:05 +00:00
2022-03-21 16:47:47 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 01:11:05 +00:00
2021-08-12 21:30:10 +00:00
2021-08-12 21:30:10 +00:00
2021-08-12 21:30:10 +00:00
2023-04-12 01:11:05 +00:00
2023-04-12 20:32:29 +00:00
2023-04-12 20:32:29 +00:00