void node::close_service( uint16_t cn ) { if( !my->_thread.is_current() ) { my->_thread.async( [&,this](){ close_service(cn); } ).wait(); return; } // TODO }
error_code failure_detector::stop() { if ( _is_started == false ) { return ERR_OK; } _is_started = false; close_service(); { zauto_lock l(_lock); for (auto& m : _masters) { m.second.send_beacon_timer->cancel(true); } _masters.clear(); _workers.clear(); } if (_check_task != nullptr) { _check_task->cancel(true); _check_task = nullptr; } return ERR_OK; }
::dsn::error_code simple_kv_service_impl::stop(bool clear_state) { close_service(gpid()); { zauto_lock l(_lock); if (clear_state) { dsn_get_app_data_dir(gpid()); if (!dsn::utils::filesystem::remove_path(data_dir())) { dassert(false, "Fail to delete directory %s.", data_dir()); } } } return ERR_OK; }