crossroads

Git mirror of https://crossroads.e-tunity.com/
git clone git://git.finwo.net/app/crossroads
Log | Files | Refs | LICENSE

deletebackend.cc (468B)


      1 #include "balancer"
      2 
      3 void Balancer::deletebackend(unsigned i) {
      4     if (backend(i).up())
      5 	throw Error("Only 'down' back ends can be deleted.");
      6     if (backend(i).connections()) {
      7 	ostringstream o;
      8 	o << "Back end cannot be deleted, there are still "
      9 	  << backend(i).connections() << " connections";
     10 	throw Error(o.str());
     11     }
     12 
     13     int lock;
     14     mutex_lock(&lock);
     15     backends.erase(backends.begin() + i,
     16 		   backends.begin() + i + 1);
     17     mutex_unlock(&lock);
     18 }