mirror of
https://github.com/trapexit/mergerfs.git
synced 2024-11-25 09:41:43 +08:00
5ab0fbcaee
Yes, these are unrelated changes but somehow ended up being prototyped together and I'm too lazy to separate them.
61 lines
651 B
C
61 lines
651 B
C
#include "node.h"
|
|
|
|
#include "lfmp.h"
|
|
|
|
static lfmp_t g_NODE_FMP;
|
|
|
|
static
|
|
__attribute__((constructor))
|
|
void
|
|
node_constructor()
|
|
{
|
|
lfmp_init(&g_NODE_FMP,sizeof(node_t),256);
|
|
}
|
|
|
|
static
|
|
__attribute__((destructor))
|
|
void
|
|
node_destructor()
|
|
{
|
|
lfmp_destroy(&g_NODE_FMP);
|
|
}
|
|
|
|
node_t *
|
|
node_alloc()
|
|
{
|
|
return lfmp_calloc(&g_NODE_FMP);
|
|
}
|
|
|
|
void
|
|
node_free(node_t *node_)
|
|
{
|
|
lfmp_free(&g_NODE_FMP,node_);
|
|
}
|
|
|
|
int
|
|
node_gc1()
|
|
{
|
|
return lfmp_gc(&g_NODE_FMP);
|
|
}
|
|
|
|
void
|
|
node_gc()
|
|
{
|
|
int rv;
|
|
int fails;
|
|
|
|
fails = 0;
|
|
do
|
|
{
|
|
rv = node_gc1();
|
|
if(rv == 0)
|
|
fails++;
|
|
} while(rv || (fails < 3));
|
|
}
|
|
|
|
lfmp_t*
|
|
node_lfmp()
|
|
{
|
|
return &g_NODE_FMP;
|
|
}
|