Backport r29081: Fix player becoming unresponsive on Stop / Pause in some cases.

Fix for FS#11865: In tagtree_buffer_event, do not wait for database to
come online as that may never happen.  Rather, wait until it either
has come online or has decided that this will never happen.  Added a
new function to tagcache.c to export this information.

Flyspray: FS#11865
Author: Michael Hohmuth



git-svn-id: svn://svn.rockbox.org/rockbox/branches/v3_7@29134 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2011-01-24 22:16:30 +00:00
parent b70baf8840
commit 149fb181ca
3 changed files with 6 additions and 1 deletions

View file

@ -4645,6 +4645,10 @@ bool tagcache_is_initialized(void)
{
return tc_stat.initialized;
}
bool tagcache_is_fully_initialized(void)
{
return tc_stat.readyvalid;
}
bool tagcache_is_usable(void)
{
return tc_stat.initialized && tc_stat.ready;

View file

@ -246,6 +246,7 @@ void tagcache_unload_ramcache(void);
#endif
void tagcache_init(void) INIT_ATTR;
bool tagcache_is_initialized(void);
bool tagcache_is_fully_initialized(void);
bool tagcache_is_usable(void);
void tagcache_start_scan(void);
void tagcache_stop_scan(void);

View file

@ -652,7 +652,7 @@ static void tagtree_buffer_event(void *data)
logf("be:%s", id3->path);
while (! tagcache_is_usable())
while (! tagcache_is_fully_initialized())
yield();
if (!tagcache_find_index(&tcs, id3->path))