mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 08:41:16 +00:00
Fix setting of ZeroMQ I/O Threads (setting was not propagated before)
This commit is contained in:
parent
023d88d0ef
commit
91d3f013c0
|
@ -346,11 +346,11 @@ bool FairMQChannel::ValidateChannel()
|
|||
}
|
||||
}
|
||||
|
||||
bool FairMQChannel::InitCommandInterface(FairMQTransportFactory* factory)
|
||||
bool FairMQChannel::InitCommandInterface(FairMQTransportFactory* factory, int numIoThreads)
|
||||
{
|
||||
fTransportFactory = factory;
|
||||
|
||||
fCmdSocket = fTransportFactory->CreateSocket("sub", "device-commands", 1);
|
||||
fCmdSocket = fTransportFactory->CreateSocket("sub", "device-commands", numIoThreads);
|
||||
if (fCmdSocket)
|
||||
{
|
||||
fCmdSocket->Connect("inproc://commands");
|
||||
|
|
|
@ -168,7 +168,7 @@ class FairMQChannel
|
|||
int fNoBlockFlag;
|
||||
int fSndMoreFlag;
|
||||
|
||||
bool InitCommandInterface(FairMQTransportFactory* factory);
|
||||
bool InitCommandInterface(FairMQTransportFactory* factory, int numIoThreads);
|
||||
|
||||
bool HandleUnblock() const;
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ void FairMQDevice::InitWrapper()
|
|||
{
|
||||
if (!fCmdSocket)
|
||||
{
|
||||
fCmdSocket = fTransportFactory->CreateSocket("pub", "device-commands", 1);
|
||||
fCmdSocket = fTransportFactory->CreateSocket("pub", "device-commands", fNumIoThreads);
|
||||
fCmdSocket->Bind("inproc://commands");
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ void FairMQDevice::InitWrapper()
|
|||
{
|
||||
if (InitChannel(*(*itr)))
|
||||
{
|
||||
(*itr)->InitCommandInterface(fTransportFactory);
|
||||
(*itr)->InitCommandInterface(fTransportFactory, fNumIoThreads);
|
||||
uninitializedChannels.erase(itr++);
|
||||
}
|
||||
else
|
||||
|
@ -180,7 +180,7 @@ bool FairMQDevice::InitChannel(FairMQChannel& ch)
|
|||
{
|
||||
LOG(DEBUG) << "Initializing channel " << ch.fChannelName << " (" << ch.fType << ")";
|
||||
// initialize the socket
|
||||
ch.fSocket = fTransportFactory->CreateSocket(ch.fType, ch.fChannelName, 1);
|
||||
ch.fSocket = fTransportFactory->CreateSocket(ch.fType, ch.fChannelName, fNumIoThreads);
|
||||
// set high water marks
|
||||
ch.fSocket->SetOption("snd-hwm", &(ch.fSndBufSize), sizeof(ch.fSndBufSize));
|
||||
ch.fSocket->SetOption("rcv-hwm", &(ch.fRcvBufSize), sizeof(ch.fRcvBufSize));
|
||||
|
|
|
@ -43,13 +43,11 @@ int main(int argc, char** argv)
|
|||
{
|
||||
int eventSize;
|
||||
int eventRate;
|
||||
int ioThreads;
|
||||
|
||||
options_description sampler_options("Sampler options");
|
||||
sampler_options.add_options()
|
||||
("event-size", value<int>(&eventSize)->default_value(1000), "Event size in bytes")
|
||||
("event-rate", value<int>(&eventRate)->default_value(0), "Event rate limit in maximum number of events per second")
|
||||
("io-threads", value<int>(&ioThreads)->default_value(1), "Number of I/O threads");
|
||||
("event-rate", value<int>(&eventRate)->default_value(0), "Event rate limit in maximum number of events per second");
|
||||
|
||||
config.AddToCmdLineOptions(sampler_options);
|
||||
|
||||
|
@ -60,6 +58,7 @@ int main(int argc, char** argv)
|
|||
|
||||
string filename = config.GetValue<string>("config-json-file");
|
||||
string id = config.GetValue<string>("id");
|
||||
int ioThreads = config.GetValue<int>("io-threads");
|
||||
|
||||
config.UserParser<JSON>(filename, id);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user