* add 'backend' for backend global initialization/destruction
and common functions.
* WIP: 'file' acts as interface to named files, provides posix
filehandles with and acquire/release function pair.
* 'filehandle' manages posix filehandles internally, refcounted.
* WIP: 'filehandlecache' keeps unused filehandles in a MRU cache
* WIP: test for filehandle management
* improved filedescriptor test
* make registry initialization singleton, no parameters.
* remove registry init from all functions, has to be called explicitly.
* some nobug improvements
It is now possible to acquire/release filedescriptors for existing files
and files to be created.
Filedescriptors are managed in a registry by refcounts, they get
automatically destructed when the last user releases them.
We have 'File' which associates a name with a file and will be used to
offer an interface for the application.
Posix 'Filehandles' which are managed in a 'Filehandlecache' to utilize
a limited number of fd's at optimum.
Internally we use 'Filedescriptor's which manage files, mapping and all
kinds of metadata. Filedescriptors weak referenced by a registry and freed
when the last user vanishes.
LUMIERA_MUTEX_SECTION takes now a nobug flag as first argument and
a nobug resource-handle as second argument.
This change works forward for the NoBug resource tracker and
deadlock detector.
This implementation of cuckoo hashing gives guaranteed O(1)
lookup complexity and amortized O(1) insert and remove complexity.
Hash tables by default grow and shrink automatically.
It is posible to preallocate entries and turn automatic shrinking off,
taking out the memory management factors for insert and remove operations.
Now using proc/lumiera.hpp and proc/nobugcfg.hpp (i.e. only for the proc-Layer). Using ON_BASIC_INIT to
pull up NoBug automatically and for installing the unknown-exception handler. Add calls for
ON_GLOBAL_INIT and ON_GLOBAL_SHUTDOWN hooks to main() and to the testrunner
now building liblumiback.a liblumiproc.a liblumi.a
build a separate test-common executable (for everything in src/common)
include a precompiled header for assets.
Including some tricky recursive calls. Even if this is currently a mock implementation it helps me find out
how the real implementation (in Prolog) could handle these cases.
Doesnt pass the compiler yet (some stubs missing)