Reland "[DL]: Implement updateAndCommit().""

This reverts commit 544bd17c157f182cfae5ccd6fe9415ddb12262b3. In other
words it relands the updateAndCommit() functionality with a fix to
not change the used budget. The accidental change to the strict yielding
budget revealed a use-after-free bug, which is being fixed in a separate

The original updateAndCommit() description:
This patch adds updateAndCommit() which updates the subtree cooperatively
and then commits.

Bug: 882663
Change-Id: Ib62989ee51cd7da143d2f81a9ba674659365a20e
Reviewed-by: Chris Harrelson <>
Commit-Queue: vmpstr <>
Cr-Commit-Position: refs/heads/master@{#626812}
19 files changed