Make resourcecollector initialization explicit
instead automatic initialization, the resourcecollector is pulled up as backend service.
This commit is contained in:
parent
d350a250fa
commit
33a0591689
4 changed files with 18 additions and 8 deletions
|
|
@ -29,6 +29,7 @@
|
|||
#include "backend/filedescriptorregistry.h"
|
||||
#include "backend/mmapcache.h"
|
||||
#include "backend/threadpool.h"
|
||||
#include "backend/resourcecollector.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <sys/resource.h>
|
||||
|
|
@ -68,6 +69,8 @@ lumiera_backend_init (void)
|
|||
|
||||
lumiera_mutex_init (&lumiera_filecreate_mutex, "fileaccess", &NOBUG_FLAG (mutex_dbg), NOBUG_CONTEXT);
|
||||
|
||||
lumiera_resourcecollector_init ();
|
||||
|
||||
lumiera_threadpool_init ();
|
||||
|
||||
lumiera_filedescriptorregistry_init ();
|
||||
|
|
@ -116,11 +119,14 @@ void
|
|||
lumiera_backend_destroy (void)
|
||||
{
|
||||
TRACE (backend_dbg);
|
||||
|
||||
lumiera_mmapcache_delete ();
|
||||
lumiera_filehandlecache_delete ();
|
||||
lumiera_filedescriptorregistry_destroy ();
|
||||
lumiera_threadpool_destroy ();
|
||||
|
||||
lumiera_resourcecollector_destroy ();
|
||||
|
||||
lumiera_mutex_destroy (&lumiera_filecreate_mutex, &NOBUG_FLAG (mutex_dbg), NOBUG_CONTEXT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
|
||||
llist lumiera_resourcecollector_registry[LUMIERA_RESOURCE_END];
|
||||
lumiera_mutex lumiera_resourcecollector_lock;
|
||||
static pthread_once_t lumiera_resourcecollector_once = PTHREAD_ONCE_INIT;
|
||||
|
||||
struct lumiera_resourcehandler_struct
|
||||
{
|
||||
|
|
@ -42,8 +41,8 @@ struct lumiera_resourcehandler_struct
|
|||
};
|
||||
|
||||
|
||||
static void
|
||||
lumiera_resourcecollector_init_ (void)
|
||||
void
|
||||
lumiera_resourcecollector_init (void)
|
||||
{
|
||||
//NOBUG_INIT_FLAG (resourcecollector);
|
||||
TRACE (resourcecollector_dbg);
|
||||
|
|
@ -74,8 +73,6 @@ lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resourc
|
|||
{
|
||||
TRACE (resourcecollector_dbg);
|
||||
|
||||
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
|
||||
|
||||
LUMIERA_MUTEX_SECTION (mutex_sync, &lumiera_resourcecollector_lock)
|
||||
{
|
||||
for (enum lumiera_resource_try progress = LUMIERA_RESOURCE_NONE; progress < *iteration; ++*iteration)
|
||||
|
|
@ -119,8 +116,6 @@ lumiera_resourcecollector_run (enum lumiera_resource which, enum lumiera_resourc
|
|||
LumieraResourcehandler
|
||||
lumiera_resourcecollector_register_handler (enum lumiera_resource resource, lumiera_resource_handler_fn handler, void* data)
|
||||
{
|
||||
pthread_once (&lumiera_resourcecollector_once, lumiera_resourcecollector_init_);
|
||||
|
||||
TRACE (resourcecollector_dbg);
|
||||
|
||||
LumieraResourcehandler self = lumiera_malloc (sizeof (*self));
|
||||
|
|
|
|||
|
|
@ -98,10 +98,17 @@ typedef struct lumiera_resourcehandler_struct lumiera_resourcehandler;
|
|||
typedef lumiera_resourcehandler* LumieraResourcehandler;
|
||||
|
||||
|
||||
/**
|
||||
* Initialize the Resourcecollector.
|
||||
* The resourcecollector is singleton and can be used after initialized once.
|
||||
*/
|
||||
void
|
||||
lumiera_resourcecollector_init (void);
|
||||
|
||||
|
||||
/**
|
||||
* Destroy the resource collector registry.
|
||||
* Unregisters and deletes all handlers.
|
||||
* Note that there is no resourcecollector_init() function, initialization is automatic on first use.
|
||||
*/
|
||||
void
|
||||
lumiera_resourcecollector_destroy (void);
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ TESTS_BEGIN
|
|||
|
||||
TEST ("basic")
|
||||
{
|
||||
lumiera_resourcecollector_init ();
|
||||
lumiera_resourcecollector_register_handler (LUMIERA_RESOURCE_MEMORY, test_memory_handler, NULL);
|
||||
lumiera_resourcecollector_destroy ();
|
||||
}
|
||||
|
|
@ -57,6 +58,7 @@ TEST ("basic")
|
|||
TEST ("memory_collection_mockup")
|
||||
{
|
||||
REQUIRE (argv[2]);
|
||||
lumiera_resourcecollector_init ();
|
||||
|
||||
lumiera_resourcecollector_register_handler (LUMIERA_RESOURCE_MEMORY, test_memory_handler, NULL);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue