diff options
| author | Michael Sevakis <jethead71@rockbox.org> | 2010-12-27 10:05:09 +0000 |
|---|---|---|
| committer | Michael Sevakis <jethead71@rockbox.org> | 2010-12-27 10:05:09 +0000 |
| commit | 7b4eb44395bced7073e37d0b8b0d83fb2f518482 (patch) | |
| tree | af526b3cf241e9eeb2bd3c1508791078f93f4157 /firmware/export/thread.h | |
| parent | 479414faccedeeb1ca7d0b6074bd69f2ef6dd441 (diff) | |
| download | rockbox-7b4eb44395bced7073e37d0b8b0d83fb2f518482.zip rockbox-7b4eb44395bced7073e37d0b8b0d83fb2f518482.tar.gz rockbox-7b4eb44395bced7073e37d0b8b0d83fb2f518482.tar.bz2 rockbox-7b4eb44395bced7073e37d0b8b0d83fb2f518482.tar.xz | |
Certain data accesses in the kernel should have volatile semantics to be correct and not rely on the whims of the compiler. Change queue clearing to simply catch read up to write rather than reset both to 0 to ensure sane results for queue_count and queue_empty with concurrency. Binsize may or may not increase a bit depending upon whether the output was as intended in all places; wrong stuff was already unlikely to cause any issue.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28909 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export/thread.h')
| -rw-r--r-- | firmware/export/thread.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/firmware/export/thread.h b/firmware/export/thread.h index 87c2d2d..ba777dc 100644 --- a/firmware/export/thread.h +++ b/firmware/export/thread.h @@ -269,7 +269,7 @@ struct thread_entry /* Only enabled when using queue_send for now */ #endif #if defined(HAVE_EXTENDED_MESSAGING_AND_NAME) || NUM_CORES > 1 - intptr_t retval; /* Return value from a blocked operation/ + volatile intptr_t retval; /* Return value from a blocked operation/ misc. use */ #endif #ifdef HAVE_PRIORITY_SCHEDULING |