Alexander Aprelev
eb75c53d95
[vm/shared] Perform deeply-immutable initialization runtime check.
...
When an initial value is assigned into a class tagged as deeply-immutable, perform runtime check of that value. This is needed to support proper initialization of the closures as part of deeply-immutable classes.
BUG=https://github.com/dart-lang/sdk/issues/61962
TEST=run_isolate_group_run_test
Change-Id: I550746c0d22ca06ffb89959e8384cc9e6d28d590
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/468200
Commit-Queue: Alexander Aprelev <aam@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-01-14 08:42:22 -08:00
Alexander Aprelev
a949c74530
[vm/shared] Ensure stores into shared static variables are checked.
...
Closures going into shared variables in particular have to be confirmed to capture appropriate values.
BUG=https://github.com/dart-lang/sdk/issues/62179
TEST=run_isolate_group_run_test
Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try,vm-dyn-mac-debug-arm64-try,vm-aot-dyn-linux-debug-x64-try
Change-Id: I27416773fd77077018739ea4dbcc6e4695e67be8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/469103
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2025-12-22 07:53:44 -08:00
Alexander Aprelev
650ed9cde1
[vm/shared] Ensure context captured by isolategroup callbacks has only trivially shareable objects.
...
Fixes https://github.com/dart-lang/sdk/issues/61210
TEST=run_isolate_group_run_test, isolate_group_bound_callback_test
Change-Id: I9633726055007255f67eb9744186fdbe21fa832d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443639
Commit-Queue: Alexander Aprelev <aam@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2025-08-06 10:10:00 -07:00
Alexander Aprelev
feabbd99a2
[vm/shared] Ensure Resume stub works in absence of isolate.
...
The stub can be invoked from isolategroup-bound code.
Also require set experimental-shared-data flag when using IsolateGroup.runSync.
TEST=vm/dart/shared_syncstar_test
BUG=https://github.com/dart-lang/sdk/issues/61137
Change-Id: I2af27f3f9eeb0dd0dbdfe2e4ec5b162a8e0bd816
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/441260
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2025-07-29 10:12:26 -07:00
Alexander Aprelev
bd0d029792
[vm/shared] Remove "single mutator" fastpath from RunWithStoppedMutators.
...
In presence of isolate-less mutators, the check for "single mutator"-scenario is not-trivial, acquiring active_mutator_count mutex results in circular mutex dependencies.
BUG=https://github.com/dart-lang/sdk/issues/60857
BUG=https://github.com/dart-lang/sdk/issues/60953
TEST=ci
Change-Id: I5a12f9b8d4bc54042137012668ed1afee7c7739f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/435241
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2025-06-30 10:31:57 -07:00
Ryan Macnak
18aa7d3678
[vm] Refactor runtime entries.
...
- Reduce header surface area.
- Remove runtime_entry_<arch>.cc, which no longer include code generation.
- Fix signature of DLRT_Enter/ExitSafepoint.
- Give non-leaf runtime functions C linkage, as C++ does not have a defined ABI.
TEST=ci
Change-Id: I21e21a50ad9e4f9b32b1204d755bfa69a2ae9b17
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/430981
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2025-05-27 10:46:24 -07:00
Alexander Aprelev
893e37a517
[vm/shared] Add timeout to ConditionVariable.wait.
...
Update isolate_group_shared_callback_test to use that and also use flag to print exceptions.
TEST=ci
CoreLibraryReviewExempt: only internal library is affected
Change-Id: Ia53ca7a6dc847b551229ccf00bbbfe302a260fcb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/427680
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2025-05-09 11:29:30 -07:00
Alexander Aprelev
fddb38ecab
[vm/shared] Introduce IsolateGroup.runSync()
...
Allow dart code execution on mutator thread, do not require an isolate.
It moves some states that was kept on an isolate to thread or isolate group.
Bug: https://github.com/dart-lang/sdk/issues/54530
Bug: https://github.com/dart-lang/sdk/issues/56841
TEST=run_isolate_group_run_test
CoreLibraryReviewExempt: only internal library is being updated
Change-Id: I99df09e23954755387ea6230bfd166493d78e989
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418503
Reviewed-by: Slava Egorov <vegorov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2025-05-05 14:52:07 -07:00
Ryan Macnak
12be1f79d2
[vm] Test active mutator stealing works with dart:concurrent locks.
...
- Add Monitor.notifyAll.
- Refactor Mutex.runLocked to unlock if interrupted by unwind error.
- Fix skipped DLRT_ExitHandleScope during an unwind error.
TEST=vm/dart/isolates/many_isolates_blocked_at_monitor_test
Bug: https://github.com/dart-lang/sdk/issues/55991
CoreLibraryReviewExempt: VM-only experimental library
Change-Id: I7a37544436e22158e45ee44567600fcf7ff7d7b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409561
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2025-02-18 10:33:14 -08:00
Alexander Aprelev
95f5efc697
[vm/concurrent] Use ffi native resolver for dart:concurrent native functions.
...
Ffi native interface should be faster, more effecient for Dart->C++ communication, so switching to it.
TEST=ci
Change-Id: I9e1d18a666737799194c0435c300e4b81783c0ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/377541
Commit-Queue: Alexander Aprelev <aam@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2024-07-26 19:26:11 +00:00