DescriptionWorker: Protect a running debugger task from forcible worker termination (2)
A running debugger task must be protected from forcible worker termination, but
in the current implementation, there is a corner case where the debugger task
can suddenly be killed as follows:
1) terminate() is called while a debugger task is running. This does not
schedule a task to forcibly terminate the worker execution.
2) terminateAndWait() is called while a debugger task is still running. This
attempts to overtake the scheduled (actually not scheduled) termination task
and forcibly terminates the worker execution.
3) The running debugger task is interrupted and possibly crashes.
After this change, terminateAndWait() respects the running debugger task on the
step 2).
BUG=616775
Committed: https://crrev.com/39ce89cd7e60e2f20925eb332d9d9735185425f4
Cr-Commit-Position: refs/heads/master@{#400120}
Patch Set 1 #
Depends on Patchset: Messages
Total messages: 19 (13 generated)
|