Abstract out the wait
authorBrian Aker <brian@tangent.org>
Sat, 20 Aug 2011 22:18:58 +0000 (15:18 -0700)
committerBrian Aker <brian@tangent.org>
Sat, 20 Aug 2011 22:18:58 +0000 (15:18 -0700)
libtest/memcached.cc
libtest/server.cc
libtest/server.h
libtest/wait.h

index 3e8e3fcdea9b7600c551c5bdfca46a38ef60698f..daf6787cf69b9c86bd2afaaefe2b58772c2b47d8 100644 (file)
@@ -87,9 +87,7 @@ public:
     // Memcached is slow to start, so we need to do this
     if (not pid_file().empty())
     {
-      Wait wait(pid_file(), 0);
-
-      if (error_is_ok and not wait.successful())
+      if (error_is_ok and not wait_for_pidfile())
       {
         Error << "Pidfile was not found:" << pid_file();
         return -1;
@@ -120,9 +118,7 @@ public:
     // Memcached is slow to start, so we need to do this
     if (not pid_file().empty())
     {
-      Wait wait(pid_file(), 0);
-
-      if (not wait.successful())
+      if (not wait_for_pidfile())
       {
         Error << "Pidfile was not found:" << pid_file();
         return -1;
@@ -230,9 +226,7 @@ public:
     // Memcached is slow to start, so we need to do this
     if (not pid_file().empty())
     {
-      Wait wait(pid_file(), 0);
-
-      if (error_is_ok and not wait.successful())
+      if (error_is_ok and not wait_for_pidfile())
       {
         Error << "Pidfile was not found:" << pid_file();
         return -1;
@@ -263,9 +257,7 @@ public:
     // Memcached is slow to start, so we need to do this
     if (not pid_file().empty())
     {
-      Wait wait(pid_file(), 0);
-
-      if (not wait.successful())
+      if (not wait_for_pidfile())
       {
         Error << "Pidfile was not found:" << pid_file();
         return -1;
index 5f0d59ec161c830b87b7d9c115c9165c7d166c33..8b8b8f3e98776eef0a11a8fd18cd35280a9fbdcc 100644 (file)
@@ -155,6 +155,13 @@ bool Server::command(std::string& command_arg)
   return false;
 }
 
+bool Server::wait_for_pidfile() const
+{
+  Wait wait(pid_file(), 4);
+
+  return wait.successful();
+}
+
 bool Server::start()
 {
   // If we find that we already have a pid then kill it.
index 123d1c3255f6d85af7b9b4ee2b26ef35c3b55099..b91f55b13de3124b4102961efadffcba053ac3b4 100644 (file)
@@ -148,6 +148,8 @@ public:
     return (_pid > 1);
   }
 
+  bool wait_for_pidfile() const;
+
   bool check_pid(pid_t pid_arg) const
   {
     return (pid_arg > 1);
index d72a897bac938efa04af39c9f4ea23ac9be6d910..391afa4979fe9b897daa35d81ed8478012fff2fc 100644 (file)
@@ -38,6 +38,12 @@ public:
     uint32_t this_wait;
     uint32_t retry;
 
+    if (filename.empty())
+    {
+      _successful= false;
+      return;
+    }
+
     for (waited= 0, retry= 1; ; retry++, waited+= this_wait)
     {
       if (access(filename.c_str(), R_OK) == 0)