Tagcache - Ramcache Move ref checks, speed up disk searches

move loading file reference to a separate function

some optimization of the disk search function check tag length before
reading the actual entry & reduce number of lseek calls
this affects startup resume as well before tagcache is done loading

Change-Id: I2bd2fc53c4870416ecd1a4034b34cb6984d8ad51
This commit is contained in:
William Wilgus 2023-01-18 10:22:36 -05:00
parent 1025283042
commit d6fb80d4ff
3 changed files with 228 additions and 169 deletions

View file

@ -74,12 +74,18 @@ enum clause { clause_none, clause_is, clause_is_not, clause_gt, clause_gteq,
clause_logical_or };
struct tagcache_stat {
char db_path[MAX_PATHNAME+1]; /* Path to DB root directory */
bool initialized; /* Is tagcache currently busy? */
bool readyvalid; /* Has tagcache ready status been ascertained */
bool ready; /* Is tagcache ready to be used? */
bool ramcache; /* Is tagcache loaded in ram? */
bool commit_delayed; /* Has commit been delayed until next reboot? */
bool econ; /* Is endianess correction enabled? */
volatile bool syncscreen;/* Synchronous operation with debug screen? */
volatile const char
*curentry; /* Path of the current entry being scanned. */
int commit_step; /* Commit progress */
int ramcache_allocated; /* Has ram been allocated for ramcache? */
int ramcache_used; /* How much ram has been really used */
@ -87,11 +93,8 @@ struct tagcache_stat {
int processed_entries; /* Scanned disk entries so far */
int total_entries; /* Total entries in tagcache */
int queue_length; /* Command queue length */
volatile const char
*curentry; /* Path of the current entry being scanned. */
volatile bool syncscreen;/* Synchronous operation with debug screen? */
// const char *uimessage; /* Pending error message. Implement soon. */
char db_path[MAX_PATHNAME+1]; /* Path to DB root directory */
//const char *uimessage; /* Pending error message. Implement soon. */
};
enum source_type {source_constant,