| Index: chrome/service/service_process.cc
|
| diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc
|
| index 0dca832cbbfac04d8317f8dbdec2ab82696973e7..a29cc1db80d361012977c1c1e26707d148b9cd15 100644
|
| --- a/chrome/service/service_process.cc
|
| +++ b/chrome/service/service_process.cc
|
| @@ -237,6 +237,11 @@ bool ServiceProcess::Teardown() {
|
|
|
| mojo_ipc_support_.reset();
|
| ipc_server_.reset();
|
| +
|
| + // On POSIX, this must be called before joining |io_thread_| because it posts
|
| + // a DeleteSoon() task to that thread.
|
| + service_process_state_->SignalStopped();
|
| +
|
| // Signal this event before shutting down the service process. That way all
|
| // background threads can cleanup.
|
| shutdown_event_.Signal();
|
| @@ -257,7 +262,6 @@ bool ServiceProcess::Teardown() {
|
| // might use it have been shut down.
|
| network_change_notifier_.reset();
|
|
|
| - service_process_state_->SignalStopped();
|
| return true;
|
| }
|
|
|
|
|