Add debugging of mutexes (#1470)

When DEBUG defined it will used timed locks which will log when held
too long along with where.
This commit is contained in:
trapexit 2025-05-26 00:44:39 -05:00 • committed by GitHub
parent 4b751c2d37
commit 92312c8507
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 352 additions and 432 deletions

60
libfuse/lib/node.cpp Normal file
View file

@ -0,0 +1,60 @@
#include "node.hpp"
#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 (node_t*)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;
}