示例#1
0
文件: core.cpp 项目: jeaye/clam
  void core::run()
  {
    std::thread accept_thread(std::bind(&core::accept, this));
    std::thread render_thread(std::bind(&core::render_impl, this));
    try
    {
      while(m_running)
      {
        while(generic_pool_t::global().poll()) ;

        m_reader(m_workers);
        m_pinger(m_workers);
        m_stat_collector(m_workers);

        render();
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
      }
    }
    catch(std::exception const &e)
    {
      log_system("core exception: %%", e.what());
      m_running = false;

      /* Wake up the render thread. */
      render();
      accept_thread.detach();
      render_thread.join();
    }
    /* TODO: shared::thread for more RAII. */
    if(accept_thread.joinable())
    { accept_thread.detach(); }
    if(render_thread.joinable())
    { render_thread.join(); }
  }
示例#2
0
文件: Server.cpp 项目: 21451061/Lifes
bool Server::init() {
    std::cout << "init..." << std::endl;

	std::thread accept_thread();




	//Version ver = this->getVersion();
	//std::cout << "version:" << ver.version << " major:" << ver.v.major_version << " minor:" << ver.v.minor_version << std::endl;
    return true;
}