diff --git a/cpp/helloworld/greeter_server.cc b/cpp/helloworld/greeter_server.cc
index 01a0bf242dd40dd65e77b4145b8a55bc2cd024b1..e3dd36b0ed99a059b6ef4d4b96c3e5ee5282ab4c 100644
--- a/cpp/helloworld/greeter_server.cc
+++ b/cpp/helloworld/greeter_server.cc
@@ -34,7 +34,6 @@
 #include <iostream>
 #include <memory>
 #include <string>
-#include <thread>
 
 #include <grpc/grpc.h>
 #include <grpc++/server.h>
@@ -69,9 +68,7 @@ void RunServer() {
   builder.RegisterService(&service);
   std::unique_ptr<Server> server(builder.BuildAndStart());
   std::cout << "Server listening on " << server_address << std::endl;
-  while (true) {
-    std::this_thread::sleep_for(std::chrono::seconds(5));
-  }
+  server->Wait();
 }
 
 int main(int argc, char** argv) {