Message Ownership and Control
When a C program creates a message, the program owns that message. The program is responsible for destroying that message when it no longer needs the storage. That is, every create message operation must be paired with a destroy message operation.
In contrast, when Rendezvous software creates a message, then Rendezvous software owns that message. This situation occurs only in the case of inbound messages presented to a callback function; Rendezvous software destroys such messages when the callback function returns, unless the program explicitly detaches the message first. After a detach operation, the program owns the message, and must explicitly destroy it to reclaim the storage.
Rendezvous software controls the storage in which all messages reside—even messages that the program owns. Programs must not directly modify the storage in which a message resides. Programs may change the contents of a message only by using Rendezvous functions that add, remove or update fields.