summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2006-08-14 19:03:37 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2006-08-14 19:03:37 +0000
commit5019b326205c2d0377111b0b9ce1b08cb9624b69 (patch)
tree823a8b4c832eb7b3409f1d13bdc8a316fca39744
parent7e84db7fa20904a17c67d757185ff0d54a52eb05 (diff)
downloadrockbox-5019b326205c2d0377111b0b9ce1b08cb9624b69.tar.gz
rockbox-5019b326205c2d0377111b0b9ce1b08cb9624b69.zip
Make sure dircache blocks correctly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10573 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/tagtree.c7
-rw-r--r--firmware/common/dircache.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 0565b62981..0727b8ea45 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -997,8 +997,10 @@ bool insert_all_playlist(struct tree_context *c, int position, bool queue)
}
if (playlist_insert_track(NULL, buf, position, queue, false) < 0)
+ {
+ logf("playlist_insert_track failed");
break;
-
+ }
yield();
}
playlist_sync(NULL);
@@ -1065,7 +1067,8 @@ bool tagtree_insert_selection_playlist(int position, bool queue)
else
{
logf("insert_all_playlist");
- insert_all_playlist(tc, position, queue);
+ if (!insert_all_playlist(tc, position, queue))
+ gui_syncsplash(HZ*2, true, str(LANG_FAILED));
}
/* Finally return the dirlevel to its original value. */
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index d2c77a2e25..d0fdba06af 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -633,6 +633,7 @@ int dircache_build(int last_size)
if (dircache_size > 0)
{
thread_enabled = true;
+ dircache_initializing = true;
queue_post(&dircache_queue, DIRCACHE_BUILD, 0);
return 2;
}
@@ -680,6 +681,7 @@ void dircache_init(void)
int i;
dircache_initialized = false;
+ dircache_initializing = false;
memset(opendirs, 0, sizeof(opendirs));
for (i = 0; i < MAX_OPEN_DIRS; i++)
@@ -769,7 +771,9 @@ void dircache_disable(void)
}
}
} while (cache_in_use) ;
+
logf("Cache released");
+ entry_count = 0;
}
/**