diff options
author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2008-05-13 20:51:06 +0000 |
---|---|---|
committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2008-05-13 20:51:06 +0000 |
commit | f7e0e6bb1cfc079cfbf18ce3224442be26ba46f2 (patch) | |
tree | 4d6a775b5a4834423327aaed01dc1b71a53edb25 | |
parent | b9b50d9782db270551de3ad00fd2e56441150dbc (diff) | |
download | rockbox-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.c | 4 |
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; |