aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/shell/integration
diff options
context:
space:
mode:
authorGravatar mschaller <mschaller@google.com>2018-07-01 19:41:03 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-01 19:42:30 -0700
commitb9166943e5dc23f7ce8ef2dce3cb98e5ce26e50b (patch)
tree1a25cc094c95b4cbed711712256683e138038114 /src/test/shell/integration
parent1e54246d27417dd69aa5553da9e945254c492cd0 (diff)
Restart node building if previous dep is dirty, fix check-then-act races
While initializing the SkyFunctionEnvironment for a node being built, if a previously requested dep is found to be not done, reset and re-enqueue the building node. This lets the node handle the not-done dep like any other not-done dep (e.g. by enqueuing it or by waiting to be signalled by it). Similarly, while registering newly requested deps when building a node yields a value or an error, if a newly requested dep is found to be not done, return without completing the node, so that it may be signalled by the dep (without crashing; done nodes cannot be signalled). Also fixes a handful of remaining check-then-act races during Skyframe evaluation that were vulnerable to done->dirty node transitions. (Note that done->dirty node transitions during evaluation are planned, but not yet possible.) RELNOTES: None. PiperOrigin-RevId: 202886360
Diffstat (limited to 'src/test/shell/integration')
0 files changed, 0 insertions, 0 deletions