tibrv_Close()
Function
Declaration
tibrv_status tibrv_Close
(void);
Purpose
Stop and destroy Rendezvous internal machinery.
Remarks
After tibrv_Close()
destroys the internal machinery, Rendezvous software becomes inoperative:
• | Events no longer arrive in queues. |
• | All events and queues are unusable, so programs can no longer dispatch events. |
• | All transports are unusable, so programs can no longer send outbound messages. |
tibrv_Close() frees storage associated with events, queues, queue groups, transports and dispatcher threads. However, tibrv_Close() does not destroy Rendezvous messages; the program must explicitly destroy messages to reclaim their storage.
Programs can call tibrv_Close() in any thread.
Reference Count
A reference count protects against interactions between programs and third-party packages that call tibrv_Open() and tibrv_Close(). Each call to tibrv_Open() increments an internal counter; each call to tibrv_Close() decrements that counter. A call to tibrv_Open() actually creates internal machinery only when the reference counter is zero; subsequent calls merely increment the counter, but do not duplicate the machinery. A call to tibrv_Close() actually destroys the internal machinery only when the call decrements the counter to zero; other calls merely decrement the counter. In each program, the number of calls to tibrv_Open() and tibrv_Close() must match.