From 223f6c6a53890cd17ee15fd828ef153d2e46a398 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Wed, 25 Jan 2017 03:18:14 -0500 Subject: [PATCH] API doc: add more details about reference counting MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- doc/api/images/ref-count-api-returns.png | Bin 0 -> 9263 bytes doc/api/images/ref-count-callback.png | Bin 0 -> 16398 bytes doc/api/images/ref-count-user-calls.png | Bin 0 -> 9768 bytes include/babeltrace/ref.h | 45 +++++++++++++++++++---- 4 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 doc/api/images/ref-count-api-returns.png create mode 100644 doc/api/images/ref-count-callback.png create mode 100644 doc/api/images/ref-count-user-calls.png diff --git a/doc/api/images/ref-count-api-returns.png b/doc/api/images/ref-count-api-returns.png new file mode 100644 index 0000000000000000000000000000000000000000..e8f347173d5639727665d24f4a5b7243702b73df GIT binary patch literal 9263 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 literal 0 HcmV?d00001 diff --git a/doc/api/images/ref-count-callback.png b/doc/api/images/ref-count-callback.png new file mode 100644 index 0000000000000000000000000000000000000000..4e758627cce6620e1d6700821b219da91aa47a16 GIT binary patch literal 16398 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 z&7RMIJ_TH#reference counting of Babeltrace objects. -All Babeltrace objects can be shared by multiple owners thanks to +Any Babeltrace object can be shared by multiple owners thanks to reference -counting. A function which returns a Babeltrace object owned -by another one increments its reference count so that the caller -becomes an owner too. +counting. -When a Babeltrace object is created, its reference count is initialized -to 1. It is your responsibility to discard the object when you don't -need it anymore with bt_put(). +The Babeltrace C API complies with the following key principles: + +1. When you call an API function which accepts a Babeltrace object + pointer as a parameter, the API function borrows the + reference for the duration of the function. + + @image html ref-count-user-calls.png + + The API function can also get a new reference if the system needs a + more persistent reference, but the ownership is never + transferred from the caller to the API function. + + In other words, the caller still owns the object after calling any + API function: no function "steals" the user's reference (except + bt_put()). + +2. An API function which \em returns a Babeltrace object pointer to the + user returns a new reference. The caller becomes an + owner of the object. + + @image html ref-count-api-returns.png + + It is your responsibility to discard the object when you don't + need it anymore with bt_put(). + + For example, see bt_value_array_get(). + +3. A Babeltrace object pointer received as a parameter in a user + function called back from an API function is a + borrowed, or weak reference: if you + need a reference which is more persistent that the duration of the + user function, call bt_get() on the pointer. + + @image html ref-count-callback.png + + For example, see bt_value_map_foreach(). The two macros BT_PUT() and BT_MOVE() operate on \em variables rather than pointer values. You should use BT_PUT() instead of bt_put() when -- 2.34.1