Author: gsim Date: Mon Apr 26 14:33:27 2010 New Revision: 938060 URL: http://svn.apache.org/viewvc?rev=938060&view=rev Log: Handle incorrect values for worker-threads option more gracefully
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=938060&r1=938059&r2=938060&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Mon Apr 26 14:33:27 2010 @@ -55,6 +55,7 @@ #include "qpid/Version.h" #include <boost/bind.hpp> +#include <boost/format.hpp> #include <iostream> #include <memory> @@ -323,21 +324,25 @@ void Broker::setStore () { } void Broker::run() { - QPID_LOG(notice, "Broker running"); - Dispatcher d(poller); - int numIOThreads = config.workerThreads; - std::vector<Thread> t(numIOThreads-1); - - // Run n-1 io threads - for (int i=0; i<numIOThreads-1; ++i) - t[i] = Thread(d); - - // Run final thread - d.run(); - - // Now wait for n-1 io threads to exit - for (int i=0; i<numIOThreads-1; ++i) { - t[i].join(); + if (config.workerThreads > 0) { + QPID_LOG(notice, "Broker running"); + Dispatcher d(poller); + int numIOThreads = config.workerThreads; + std::vector<Thread> t(numIOThreads-1); + + // Run n-1 io threads + for (int i=0; i<numIOThreads-1; ++i) + t[i] = Thread(d); + + // Run final thread + d.run(); + + // Now wait for n-1 io threads to exit + for (int i=0; i<numIOThreads-1; ++i) { + t[i].join(); + } + } else { + throw Exception((boost::format("Invalid value for worker-threads: %1%") % config.workerThreads).str()); } } --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org