3
The src/main.cpp has RegisterNodeSignals and UnregisterNodeSignals to register the functions as boost signals as below:
void RegisterNodeSignals(CNodeSignals& nodeSignals)
{
nodeSignals.GetHeight.connect(&GetHeight);
nodeSignals.ProcessMessages.connect(&ProcessMessages);
nodeSignals.SendMessages.connect(&SendMessages);
nodeSignals.InitializeNode.connect(&InitializeNode);
nodeSignals.FinalizeNode.connect(&FinalizeNode);
}
Let us pick InitializeNode as an example. The actual invocation happens in src/net.cpp which invokes the function defined in src/main.cpp:
GetNodeSignals().InitializeNode(GetId(), this);
I have the following question:
- Why cannot we simply call this function? Why should we complicate with
boostlibrary and signals? - Has it got to do with performance of threads? If yes, then why only the 5 functions in
RegisterNodeSignals