MCPcopy Create free account
hub / github.com/Kitware/VTK / Receive

Method Receive

Filters/ParallelFlowPaths/vtkPStreamTracer.cxx:1323–1369  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1321 }
1322
1323 void Receive(bool wait = false)
1324 {
1325 int msg = -1;
1326 int sender(0);
1327
1328#ifdef DEBUGTRACE
1329 // this->StartTimer();
1330#endif
1331 if (ReceiveBuffer && wait)
1332 {
1333 ReceiveBuffer->GetRequest().Wait();
1334 }
1335
1336 if (ReceiveBuffer && ReceiveBuffer->GetRequest().Test())
1337 {
1338 MyStream& inStream(ReceiveBuffer->GetStream());
1339 inStream >> msg >> sender;
1340 this->Msgs.push_back((Message)msg);
1341 if (msg == NewTask)
1342 {
1343 PRINT("Received message " << msg << " from " << sender)
1344
1345 vtkSmartPointer<Task> task = this->NewTaskInstance();
1346 this->Read(inStream, *task);
1347 PRINT("Received task "
1348 << task->GetId()); //<<" "<<task->Seed[0]<<" "<<task->Seed[1]<<" "<<task->Seed[2]);
1349 this->NTasks.push_back(task);
1350 }
1351 delete ReceiveBuffer;
1352 ReceiveBuffer = nullptr;
1353 }
1354 if (ReceiveBuffer == nullptr)
1355 {
1356 ReceiveBuffer = new MessageBuffer(this->MessageSize);
1357 MyStream& inStream(ReceiveBuffer->GetStream());
1358 this->Controller->NoBlockReceive(inStream.GetRawData(), inStream.GetSize(),
1359 vtkMultiProcessController::ANY_SOURCE, 561, ReceiveBuffer->GetRequest());
1360 }
1361
1362#ifdef DEBUGTRACE
1363 // double time = this->StopTimer();
1364 // if (msg >= 0)
1365 // {
1366 // this->ReceiveTime += time;
1367 // }
1368#endif
1369 }
1370
1371 int NumSends;
1372 double ReceiveTime;

Callers 15

NextTaskMethod · 0.95
ExecuteMethod · 0.45
RequestDataMethod · 0.45
ReceiveParticleIfAnyMethod · 0.45
GenerateParticlesMethod · 0.45
MyMainFunction · 0.45
ExchangeSizesMethod · 0.45

Calls 11

NewTaskInstanceMethod · 0.95
ReadMethod · 0.95
PRINTFunction · 0.85
NoBlockReceiveMethod · 0.80
WaitMethod · 0.45
TestMethod · 0.45
GetStreamMethod · 0.45
push_backMethod · 0.45
GetIdMethod · 0.45
GetRawDataMethod · 0.45
GetSizeMethod · 0.45

Tested by 6

MyMainFunction · 0.36
ExecuteMethod · 0.36
ExecuteMethod · 0.36
MergeRemoteModelsMethod · 0.36