// // Created by pansen on 2017/8/4. // #include "RemoteFunc.h" #include bool RemoteServer::start() { LOG_INFO << "server_thd::start" << LOG_ENDL; if(running == true){ LOG_INFO << "The server_thd is already running" << LOG_ENDL; return false; } running = true; pthread_mutex_init(&mutexSerevr, NULL); // 初始化互斥对象,动态加锁,用于server int retServer = pthread_create(&server_thd, NULL, RemoteServer::rServer_thd, this); if(retServer != 0) { LOGP(ERROR, "server_thd_create: %s/n", strerror(retServer)); running = false; return false; } return true; } void RemoteServer::stop() { // LOG_INFO << "server_thd::stop" << LOG_ENDL; // if (!running) // return; // running = false; // pthread_mutex_destroy(&mutexSerevr); //#todo } template void *RemoteServer::rServer_thd(void *arg) { LOG_INFO << "RemoteServer::rServer_thd start" << LOG_ENDL; RemoteServer& rs = *(RemoteServer*)arg; capnp::EzRpcServer trpcServer(kj::heap(),rs.host, rs.port); auto& serverLoop = trpcServer.getWaitScope(); kj::NEVER_DONE.wait(serverLoop); LOG_INFO << "RemoteServer::rServer_thd stop" << LOG_ENDL; }