From 559f622258b95c2be85d4401b315f2a04ad0f5f9 Mon Sep 17 00:00:00 2001 From: cedric Date: Wed, 17 Sep 2008 15:20:35 +0000 Subject: [PATCH] Add statistics, gc support to mempool and a workaround path lookup for module. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eina@36051 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/include/eina_mempool.h | 5 +++++ src/lib/eina_mempool.c | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/include/eina_mempool.h b/src/include/eina_mempool.h index 673c3eb..8ea805b 100644 --- a/src/include/eina_mempool.h +++ b/src/include/eina_mempool.h @@ -21,6 +21,7 @@ #include "eina_types.h" #include "eina_error.h" +#include "eina_module.h" /** * @defgroup Memory_Pool_Group Memory Pool @@ -32,6 +33,7 @@ EAPI extern Eina_Error EINA_ERROR_NOT_MEMPOOL_MODULE; EAPI int eina_mempool_init(void); EAPI int eina_mempool_shutdown(void); +EAPI Eina_Module_Group * eina_mempool_module_group_get(void); EAPI Eina_Mempool * eina_mempool_new(const char *module, const char *context, const char *options, ...); EAPI void eina_mempool_delete(Eina_Mempool *mp); @@ -40,6 +42,9 @@ EAPI void * eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int s EAPI void * eina_mempool_alloc(Eina_Mempool *mp, unsigned int size); EAPI void eina_mempool_free(Eina_Mempool *mp, void *element); +EAPI void eina_mempool_gc(Eina_Mempool *mp); +EAPI void eina_mempool_statistics(Eina_Mempool *mp); + /** @} */ #endif /* EINA_MEMPOOL_H_ */ diff --git a/src/lib/eina_mempool.c b/src/lib/eina_mempool.c index e01c884..6acc9f4 100644 --- a/src/lib/eina_mempool.c +++ b/src/lib/eina_mempool.c @@ -123,6 +123,12 @@ eina_mempool_shutdown(void) return _init_count; } +EAPI Eina_Module_Group * +eina_mempool_module_group_get(void) +{ + return _group; +} + /** * */ @@ -185,3 +191,19 @@ EAPI void eina_mempool_free(Eina_Mempool *mp, void *element) mp->backend->free(mp->backend_data, element); } + +EAPI void eina_mempool_gc(Eina_Mempool *mp) +{ + assert(mp); + assert(mp->backend->garbage_collect); + + mp->backend->garbage_collect(mp->backend_data); +} + +EAPI void eina_mempool_statistics(Eina_Mempool *mp) +{ + assert(mp); + assert(mp->backend->statistics); + + mp->backend->statistics(mp->backend_data); +} -- 2.7.4