Chromium Code Reviews| Index: src/main.cc |
| diff --git a/src/main.cc b/src/main.cc |
| index 9d233975e5338c1719897d76e82b9b428fb7f1f5..d7f64fe5f37b99e91d7eb2ef9e4566f01833e521 100644 |
| --- a/src/main.cc |
| +++ b/src/main.cc |
| @@ -47,6 +47,8 @@ static ServiceManager *service_manager = NULL; |
| static void OnSignal(int signal) { |
| DLOG(INFO) << "received signal " << signal; |
| if (main_loop != NULL) { |
| + // TODO(vlaviano): g_idle_add a callback to quit the main loop instead of |
| + // doing it directly here to remove some low severity races |
|
Daniel Kurtz
2010/11/24 05:05:48
Is this still true?
|
| g_main_loop_quit(main_loop); |
| } |
| } |
| @@ -78,6 +80,7 @@ int InstallSignalHandlers() { |
| // should not be called while event loop is running |
| static void CleanUpForExit() { |
| + DCHECK(main_loop == NULL || !g_main_loop_is_running(main_loop)); |
| DLOG(INFO) << "cleaning up"; |
| delete server; |
| server = NULL; |
| @@ -125,7 +128,7 @@ int main(int argc, char *argv[]) { |
| DBus::Connection client_conn = DBus::Connection::SystemBus(); |
| client_conn.set_timeout(cashew::kDBusConnectionTimeoutMilliseconds); |
| cashew::service_manager = new(std::nothrow) cashew::ServiceManager( |
| - client_conn); |
| + client_conn, cashew::main_loop); |
| if (cashew::service_manager == NULL) { |
| LOG(ERROR) << "couldn't create service manager"; |
| cashew::CleanUpForExit(); |
| @@ -138,7 +141,7 @@ int main(int argc, char *argv[]) { |
| server_conn.request_name(cashew::CashewServer::kServiceName); |
| server_conn.set_timeout(cashew::kDBusConnectionTimeoutMilliseconds); |
| cashew::server = new(std::nothrow) cashew::CashewServer(server_conn, |
| - cashew::service_manager); |
| + cashew::service_manager, cashew::main_loop); |
| if (cashew::server == NULL) { |
| LOG(ERROR) << "couldn't create cashew server"; |
| cashew::CleanUpForExit(); |