async logger and latenet command framwork (LCF)
We shall enable new flag for debug string, which is async. This means that at init we spawn new thread which will be busy with writting data to log files. While the "clients" to logger, will just put the strings in linked lists and send for thread to write to files.
Also at periodical intervals, async logger shall check some shared memory block where there will be rotating list of commands which shall be executed by all LCFs. The command shall be command_id, and 3x arguments (something like 32 byte chars). custom commands shall be configurable to receive callback. The xadmin shall support custom command registration.
built in commands:
- change debug levels of Enduro/X logger
- re-parse cache data (requires cache thread safety on objects)
This will allow to change configuration of the binaries "on the fly" with out restart.
Binaries shall keep some pointers to last executed command, and loop over to next. And what the list by timestamps (monotonic should be fine). When command is processed, thread should remember that, and also it should update the counter in command block - how much processes are executed that command. So that admin have some overview of status.