I am trying to understand how the use of loopback (option 1 in the attachment) works when utilizing node to node messaging.
It is my understanding that in loopback all messages would be created upon initialization and the messages are reused as needed throughout the system. This prevents the need to constantly create and destroy messages in VDK. It is my understanding that in place of using PostMessage, you would use the ForwardMessage call and provide the pseudo sender (current owner of the message).
This seems to make sense when working within a single node. However, when messages are sent from one node to another, routing threads are created and controlled by VDK. An end user of VDK does not have access to the processing going on within that routing thread so we have no way of implementing the use of loopback.
My questions are as follows:
1) From the Outgoing Rthread in my attachment, are we allowed to call ForwardMessage instead of PostMessage? Will the message still get to the Outgoing Rthread on Node A? Will the thread know not to call DestroyMessage or will the call be ignored since it won't be the owner of the message?
2) From the Incoming RThread in my attachment, is there a way to force loopback mode for this thread? What happens if we create our max number of VDK messages to use loopback and the Incoming RThread goes to create a new message? Doesn't the Incoming RThread share the same max VDK messages?
As a side note, has anyone experienced CreateMessage throwing an malloc exception when you try to create beyond the max number of VDK messages defined for a node. It was my impression that CreateMessage was supposed to return INT_MAX if it failed to create the message, however, that doesn't seem to be what is happening on our setup.