示例#1
0
 virtual void
 run (Arg)
   {
     _checksum = 0;
     _create_count = 0;
     {
       TestList objs = createDummies ();
       for_each (objs, reAccess);
       checkHandling (objs);
       checkSpecialSubclass ();
     }
     CHECK (0 == _checksum); // all dead
   }
 virtual void
 run (Arg)
   {
     _checkSum = 0;
     _callSum  = 0;
     _created  = 0;
     
     verifyBasics();
     
     {
       TestList objs = createOpaqueValues ();
       for_each (objs, operate);
     }
     CHECK (0 == _checkSum); // all dead
     
     verifyOverrunProtection();
     verifyCopySupportDetectionMetafunctions();
   }
示例#3
0
 void
 triggerStartup (Subsys* susy)
   {
     REQUIRE (susy);
     if (susy->isRunning()) return;
     
     INFO (subsystem, "Triggering startup of subsystem \"%s\"", cStr(*susy));
     
     for_each (susy->getPrerequisites(), start_);
     bool started = susy->start (opts_, bind (&SubsystemRunner::sigTerm, this, susy, _1));
     
     if (started)
       {
         if (susy->isRunning())
           running_.push_back (susy); // now responsible for managing the started subsystem
         else
           throw error::Logic("Subsystem "+string(*susy)+" failed to start");
       }
     
     if (!and_all (susy->getPrerequisites(), isRunning() ))
       {
         susy->triggerShutdown();
         throw error::State("Unable to start all prerequisites of Subsystem "+string(*susy));
   }   }
示例#4
0
 void
 shutdownAll ()
   {
     Lock guard (this);
     for_each (running_, stopIt_);
   }