X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fobject-pool.h;h=1c69b8c7b5dde774af36548b7d1abe530cf96b48;hb=98b15851a941e7342b8bb19e265cdc3a40fabfb8;hp=eb7833fd95ac2bdd723f07bbf28bd13f1a37eca2;hpb=578e048b5debf169e286e5b5cc747b5d6c16886d;p=babeltrace.git diff --git a/src/lib/object-pool.h b/src/lib/object-pool.h index eb7833fd..1c69b8c7 100644 --- a/src/lib/object-pool.h +++ b/src/lib/object-pool.h @@ -51,8 +51,13 @@ #include #include "lib/object.h" +/* Protection: this file uses BT_LIB_LOG*() macros directly */ +#ifndef BT_LIB_LOG_SUPPORTED +# error Please include "lib/logging.h" before including this file. +#endif + typedef void *(*bt_object_pool_new_object_func)(void *data); -typedef void *(*bt_object_pool_destroy_object_func)(void *obj, void *data); +typedef void (*bt_object_pool_destroy_object_func)(void *obj, void *data); struct bt_object_pool { /* @@ -106,12 +111,9 @@ void *bt_object_pool_create_object(struct bt_object_pool *pool) { struct bt_object *obj; - BT_ASSERT(pool); - -#ifdef BT_LOGV - BT_LOGV("Creating object from pool: pool-addr=%p, pool-size=%zu, pool-cap=%u", + BT_ASSERT_DBG(pool); + BT_LOGT("Creating object from pool: pool-addr=%p, pool-size=%zu, pool-cap=%u", pool, pool->size, pool->objects->len); -#endif if (pool->size > 0) { /* Pick one from the pool */ @@ -122,19 +124,13 @@ void *bt_object_pool_create_object(struct bt_object_pool *pool) } /* Pool is empty: create a brand new object */ -#ifdef BT_LOGV - BT_LOGV("Pool is empty: allocating new object: pool-addr=%p", + BT_LOGD("Pool is empty: allocating new object: pool-addr=%p", pool); -#endif - obj = pool->funcs.new_object(pool->data); end: -#ifdef BT_LOGV - BT_LOGV("Created one object from pool: pool-addr=%p, obj-addr=%p", + BT_LOGT("Created one object from pool: pool-addr=%p, obj-addr=%p", pool, obj); -#endif - return obj; } @@ -148,21 +144,16 @@ void bt_object_pool_recycle_object(struct bt_object_pool *pool, void *obj) { struct bt_object *bt_obj = obj; - BT_ASSERT(pool); - BT_ASSERT(obj); - -#ifdef BT_LOGV - BT_LOGV("Recycling object: pool-addr=%p, pool-size=%zu, pool-cap=%u, obj-addr=%p", + BT_ASSERT_DBG(pool); + BT_ASSERT_DBG(obj); + BT_LOGT("Recycling object: pool-addr=%p, pool-size=%zu, pool-cap=%u, obj-addr=%p", pool, pool->size, pool->objects->len, obj); -#endif if (pool->size == pool->objects->len) { /* Backing array is full: make place for recycled object */ -#ifdef BT_LOGV - BT_LOGV("Object pool is full: increasing object pool capacity: " + BT_LOGD("Object pool is full: increasing object pool capacity: " "pool-addr=%p, old-pool-cap=%u, new-pool-cap=%u", pool, pool->objects->len, pool->objects->len + 1); -#endif g_ptr_array_set_size(pool->objects, pool->size + 1); } @@ -172,11 +163,8 @@ void bt_object_pool_recycle_object(struct bt_object_pool *pool, void *obj) /* Back to the pool */ pool->objects->pdata[pool->size] = obj; pool->size++; - -#ifdef BT_LOGV - BT_LOGV("Recycled object: pool-addr=%p, pool-size=%zu, pool-cap=%u, obj-addr=%p", + BT_LOGT("Recycled object: pool-addr=%p, pool-size=%zu, pool-cap=%u, obj-addr=%p", pool, pool->size, pool->objects->len, obj); -#endif } #endif /* BABELTRACE_OBJECT_POOL_INTERNAL_H */