| 219 | } |
| 220 | |
| 221 | Status ElasticGrpcServer::Start() { |
| 222 | { |
| 223 | mutex_lock l(mu_); |
| 224 | switch (state_) { |
| 225 | case NEW: { |
| 226 | update_server_thread_.reset( |
| 227 | env_->StartThread(ThreadOptions(), "TF_elastic_service", |
| 228 | [this] { elastic_service_->HandleRPCsLoop(); })); |
| 229 | LOG(INFO) << "Started server with target: " << target(); |
| 230 | break; |
| 231 | } |
| 232 | case STARTED: |
| 233 | LOG(INFO) << "Server already started (target: " << target() << ")"; |
| 234 | return Status::OK(); |
| 235 | case STOPPED: |
| 236 | return errors::FailedPrecondition("Server has stopped."); |
| 237 | default: |
| 238 | LOG(FATAL); |
| 239 | } |
| 240 | } |
| 241 | return GrpcServer::Start(); |
| 242 | } |
| 243 | |
| 244 | Status ElasticGrpcServer::Join() { |
| 245 | GrpcServer::Join(); |