summaryrefslogtreecommitdiff
path: root/firmware/common
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common')
-rw-r--r--firmware/common/dircache.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index 023f00f848..e69ecf3d5c 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -405,7 +405,7 @@ static struct dircache_entry* dircache_get_entry(const char *path,
405 return cache_entry; 405 return cache_entry;
406} 406}
407 407
408#if 1 408#ifdef HAVE_EEPROM_SETTINGS
409/** 409/**
410 * Function to load the internal cache structure from disk to initialize 410 * Function to load the internal cache structure from disk to initialize
411 * the dircache really fast and little disk access. 411 * the dircache really fast and little disk access.
@@ -480,9 +480,6 @@ int dircache_save(void)
480 480
481 remove(DIRCACHE_FILE); 481 remove(DIRCACHE_FILE);
482 482
483 while (thread_enabled)
484 sleep(1);
485
486 if (!dircache_initialized) 483 if (!dircache_initialized)
487 return -1; 484 return -1;
488 485
@@ -718,7 +715,7 @@ bool dircache_is_enabled(void)
718 */ 715 */
719bool dircache_is_initializing(void) 716bool dircache_is_initializing(void)
720{ 717{
721 return dircache_initializing; 718 return dircache_initializing || thread_enabled;
722} 719}
723 720
724/** 721/**
@@ -835,7 +832,7 @@ void dircache_copy_path(const struct dircache_entry *entry, char *buf, int size)
835static int block_until_ready(void) 832static int block_until_ready(void)
836{ 833{
837 /* Block until dircache has been built. */ 834 /* Block until dircache has been built. */
838 while (!dircache_initialized && dircache_initializing) 835 while (!dircache_initialized && dircache_is_initializing())
839 sleep(1); 836 sleep(1);
840 837
841 if (!dircache_initialized) 838 if (!dircache_initialized)
@@ -918,7 +915,7 @@ void dircache_bind(int fd, const char *path)
918 struct dircache_entry *entry; 915 struct dircache_entry *entry;
919 916
920 /* Queue requests until dircache has been built. */ 917 /* Queue requests until dircache has been built. */
921 if (!dircache_initialized && dircache_initializing) 918 if (!dircache_initialized && dircache_is_initializing())
922 { 919 {
923 if (fdbind_idx >= MAX_PENDING_BINDINGS) 920 if (fdbind_idx >= MAX_PENDING_BINDINGS)
924 return ; 921 return ;