Unset the Instrumented Callback In Progress Flag Later
commit2f1439655ce9c21676c195ee85fdadde86c50d56
authorrobliao@chromium.org <robliao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 7 Aug 2013 09:47:34 +0000 (7 09:47 +0000)
committerrobliao@chromium.org <robliao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 7 Aug 2013 09:47:34 +0000 (7 09:47 +0000)
treebc690e4622b7120fd9a2c30337996d3a69ad24ef
parentd782faad94490549ea4fffd98315668566069fea
Unset the Instrumented Callback In Progress Flag Later

Fixing a race condition in the task manager when two tasks are in flight.

Suppose we have an instrumented task currently running as a result of a callback.
Queue: [A]

Next, [A] makes an async call, returning back. In the meantime [B] gets put on the queue.
Queue: [A] [B]

[A] goes back into execution and finishes. When it finishes, it marks that it's no longer
in an instrumented callback and directly executes [B].

[B] has lost its instrumented callback state during the enqueue into the task queue.
As a result, the task queue throws an error.

The fix here is to unset the instrumented callback state after [B] finishes.

BUG=268429

Review URL: https://chromiumcodereview.appspot.com/22361003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216139 0039d316-1c4b-4281-b951-d872f2087c98
chrome/browser/resources/google_now/utility.js