[reland] Do not block in SimpleThread::Start().

This CL is identical to https://codereview.chromium.org/2664953004.
The race condition that it highlighted in a TaskScheduler test the
first time that it landed was fixed by
https://codereview.chromium.org/2798373002/

There is no good reason to block in SimpleThread::Start().
In addition to introducing unnecessary latency, blocking in
Start() prevents a non-joinable DelegateSimpleThread from
being deleted from Run() without external synchronization
(it is wrong to delete SimpleThread while Start() is waiting
on the |event_| member).

BUG=
TBR=gab@chromium.org,jam@chromium.org,henrika@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2801073005
Cr-Commit-Position: refs/heads/master@{#462912}


CrOS-Libchrome-Original-Commit: d5acadb2d99dfbbde0cbe251173b566ceb5d3441
5 files changed
tree: 73339833d41e6a2d412155aaba348b6621cd88e6
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/