예제 #1
0
파일: node.cpp 프로젝트: Zhang-Yi/tornet
 void node::close_service( uint16_t cn ) {
   if( !my->_thread.is_current() ) {
     my->_thread.async( [&,this](){ close_service(cn); } ).wait();
     return;
   }
   // TODO
 }
예제 #2
0
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;
}
예제 #3
0
            ::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;
            }