testing: freebsd [travis skip]
[m6w6/libmemcached] / test / lib / Cluster.cpp
index e32f0fc328fd1724e0384553e288090a2d28d676..54de9398564e25c5cba32f328fe56299448b7bcd 100644 (file)
@@ -46,11 +46,15 @@ bool Cluster::start() {
   return started;
 }
 
-void Cluster::stop() {
+void Cluster::stop(bool graceful) {
   for (auto &server : cluster) {
     server.drain();
-    // no cookies for memcached; TERM is just too slow
-    server.signal(SIGKILL);
+    if (graceful) {
+      server.stop();
+    } else {
+      // no cookies for memcached; TERM is just too slow
+      server.signal(SIGKILL);
+    }
   }
 }
 
@@ -112,3 +116,9 @@ void Cluster::wait() {
     }
   }
 }
+
+bool Cluster::restart() {
+  stop();
+  wait();
+  return start();
+}