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

Fix for FS#11856: 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/trunk@29081 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2011-01-17 22:28:36 +00:00
parent 0171408408
commit d2cc5ce58e
3 changed files with 6 additions and 1 deletions

View file

@ -4746,6 +4746,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

@ -247,6 +247,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

@ -659,7 +659,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))