summaryrefslogtreecommitdiff
path: root/apps/plugins/pictureflow/pictureflow.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/pictureflow/pictureflow.c')
-rw-r--r--apps/plugins/pictureflow/pictureflow.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index d1da10ee09..91062f8f11 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -533,19 +533,28 @@ static void free_all_slide_prio(int prio);
533static bool check_database(bool prompt) 533static bool check_database(bool prompt)
534{ 534{
535 bool needwarn = true; 535 bool needwarn = true;
536 int spin = 5;
537
536 struct tagcache_stat *stat = rb->tagcache_get_stat(); 538 struct tagcache_stat *stat = rb->tagcache_get_stat();
539
537 while ( !(stat->initialized && stat->ready) ) 540 while ( !(stat->initialized && stat->ready) )
538 { 541 {
539 if (needwarn) 542 if (--spin > 0)
543 {
544 rb->sleep(HZ/5);
545 }
546 else if (needwarn)
547 {
548 needwarn = false;
540 rb->splash(0, ID2P(LANG_TAGCACHE_BUSY)); 549 rb->splash(0, ID2P(LANG_TAGCACHE_BUSY));
541 if (!prompt) 550 }
551 else if (!prompt)
542 return false; 552 return false;
543 else if (rb->action_userabort(HZ/5)) 553 else if (rb->action_userabort(HZ/5))
544 return false; 554 return false;
545 555
546 needwarn = false;
547 stat = rb->tagcache_get_stat();
548 rb->yield(); 556 rb->yield();
557 stat = rb->tagcache_get_stat();
549 } 558 }
550 return true; 559 return true;
551} 560}
@@ -3841,7 +3850,7 @@ enum plugin_status plugin_start(const void *parameter)
3841 3850
3842 void * buf; 3851 void * buf;
3843 size_t buf_size; 3852 size_t buf_size;
3844 bool prompt = (parameter && ((char *) parameter)[0] == ACTIVITY_MAINMENU); 3853 bool prompt = (parameter && (((char *) parameter)[0] == ACTIVITY_MAINMENU));
3845 3854
3846 if (!check_database(prompt)) 3855 if (!check_database(prompt))
3847 { 3856 {