summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2008-05-13 20:51:06 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2008-05-13 20:51:06 +0000
commitf7e0e6bb1cfc079cfbf18ce3224442be26ba46f2 (patch)
tree4d6a775b5a4834423327aaed01dc1b71a53edb25
parentb9b50d9782db270551de3ad00fd2e56441150dbc (diff)
downloadrockbox-f7e0e6bb1cfc079cfbf18ce3224442be26ba46f2.tar.gz
rockbox-f7e0e6bb1cfc079cfbf18ce3224442be26ba46f2.zip
Lock the linked list mutex when accessing the memory handles. This should fix the invalid values appearing for short times in the buffering debug screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17497 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/buffering.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index 84a6fca3d6..e2057d17ab 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -522,6 +522,8 @@ static void update_data_counters(void)
522 size_t remaining = 0; 522 size_t remaining = 0;
523 size_t useful = 0; 523 size_t useful = 0;
524 524
525 mutex_lock(&llist_mutex);
526
525 m = first_handle; 527 m = first_handle;
526 while (m) { 528 while (m) {
527 buffered += m->available; 529 buffered += m->available;
@@ -537,6 +539,8 @@ static void update_data_counters(void)
537 m = m->next; 539 m = m->next;
538 } 540 }
539 541
542 mutex_unlock(&llist_mutex);
543
540 data_counters.buffered = buffered; 544 data_counters.buffered = buffered;
541 data_counters.wasted = wasted; 545 data_counters.wasted = wasted;
542 data_counters.remaining = remaining; 546 data_counters.remaining = remaining;