mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-16 01:51:45 +00:00
Increase maximum number of zeromq sockets and improve output on errors.
FairMQSampler: Modified: comment out an unused loop. FairMQ: Modified: increase maximum number of ZeroMQ sockets (from default 1024). FairMQ: Modified: reduce amount of output when finding port from a range. FairMQ: Modified: stop the Device when socket creation fails and output an error.
This commit is contained in:
committed by
Florian Uhlig
parent
8a82afe184
commit
61f24eb73a
@@ -12,9 +12,10 @@
|
||||
* @author D. Klein, A. Rybalchenko
|
||||
*/
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include "FairMQLogger.h"
|
||||
#include "FairMQContextZMQ.h"
|
||||
#include <sstream>
|
||||
|
||||
FairMQContextZMQ::FairMQContextZMQ(int numIoThreads)
|
||||
: fContext()
|
||||
@@ -23,6 +24,7 @@ FairMQContextZMQ::FairMQContextZMQ(int numIoThreads)
|
||||
if (fContext == NULL)
|
||||
{
|
||||
LOG(ERROR) << "failed creating context, reason: " << zmq_strerror(errno);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int rc = zmq_ctx_set(fContext, ZMQ_IO_THREADS, numIoThreads);
|
||||
@@ -30,6 +32,13 @@ FairMQContextZMQ::FairMQContextZMQ(int numIoThreads)
|
||||
{
|
||||
LOG(ERROR) << "failed configuring context, reason: " << zmq_strerror(errno);
|
||||
}
|
||||
|
||||
// Set the maximum number of allowed sockets on the context.
|
||||
rc = zmq_ctx_set(fContext, ZMQ_MAX_SOCKETS, 10000);
|
||||
if (rc != 0)
|
||||
{
|
||||
LOG(ERROR) << "failed configuring context, reason: " << zmq_strerror(errno);
|
||||
}
|
||||
}
|
||||
|
||||
FairMQContextZMQ::~FairMQContextZMQ()
|
||||
|
@@ -40,6 +40,12 @@ FairMQSocketZMQ::FairMQSocketZMQ(const string& type, int num, int numIoThreads)
|
||||
|
||||
fSocket = zmq_socket(fContext->GetContext(), GetConstant(type));
|
||||
|
||||
if (fSocket == NULL)
|
||||
{
|
||||
LOG(ERROR) << "failed creating socket #" << fId << ", reason: " << zmq_strerror(errno);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
rc = zmq_setsockopt(fSocket, ZMQ_IDENTITY, &fId, fId.length());
|
||||
if (rc != 0)
|
||||
{
|
||||
@@ -79,6 +85,10 @@ bool FairMQSocketZMQ::Bind(const string& address)
|
||||
int rc = zmq_bind(fSocket, address.c_str());
|
||||
if (rc != 0)
|
||||
{
|
||||
if (errno == EADDRINUSE) {
|
||||
// do not print error in this case, this is handled by FairMQDevice in case no connection could be established after trying a number of random ports from a range.
|
||||
return false;
|
||||
}
|
||||
LOG(ERROR) << "failed binding socket #" << fId << ", reason: " << zmq_strerror(errno);
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user