commit | e64428a8395179f534fee45ca9a831e6c2c39d03 | [log] [tgz] |
---|---|---|
author | Alexander Markov <alexmarkov@google.com> | Fri Jan 18 01:41:18 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri Jan 18 01:41:18 2019 +0000 |
tree | 12f5502470cc83fc382c0486b11efe0b61345d94 | |
parent | 324718fadd8664eb16053bedab49630ba5c14013 [diff] |
Revert "[vm] Cleanup Dart_Get/Set/HasStickyError API and use isolate's sticky error only as a backup for thread's sticky error" This reverts commit b10f17960890b053a5c1ac9303e0f9332fc8bd17. Reason for revert: failed service/* tests Original change's description: > [vm] Cleanup Dart_Get/Set/HasStickyError API and use isolate's sticky error only as a backup for thread's sticky error > > Both thread and isolate have sticky error fields. Dart API was using > isolate's sticky error, while Dart code was using thread's sticky error. > There was a one-way move of a thread's sticky error into isolate > when thread was unscheduled. > > This causes a problem as error in the isolate may go unnoticed and > repeated unscheduling/re-scheduling might end up overwriting the error > in the isolate (which triggers the assertion). > > To solve this problem, this CL: > * Cleans up Dart API which manipulates isolate's sticky error, so > isolate's sticky error is never set directly. > * When sceduling an isolate to a thread, sticky error is moved back from > isolate (if any). > > With this changes, thread's sticky error is always used if thread is running, > and isolate's sticky error is only used to hold sticky error while > isolate has no thread. > > Fixes https://github.com/dart-lang/sdk/issues/35590 > > Change-Id: I99b128cac363ca2df75f6e64c083b1ec36c866ce > Reviewed-on: https://dart-review.googlesource.com/c/89442 > Reviewed-by: Ryan Macnak <rmacnak@google.com> > Commit-Queue: Alexander Markov <alexmarkov@google.com> TBR=rmacnak@google.com,alexmarkov@google.com,zra@google.com,asiva@google.com Change-Id: I15874575b6b8ddca618741c59c21d4e692c4dcab No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://dart-review.googlesource.com/c/90127 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.