diff options
| author | 2011-01-27 18:07:06 -0800 | |
|---|---|---|
| committer | 2011-01-27 18:08:40 -0800 | |
| commit | 5012a8fe423acf7417d3a64166f6bce06de747b8 (patch) | |
| tree | 43cfc922a5461b2a742b6fd90e52e37db680c60f | |
| parent | 74d39bd902c8561153647b19625b32938f38498c (diff) | |
Fix another barrier bug 3333866
Atomically update put.
Change-Id: Id6d4b5c03f5562b3021561e95966a01abd293667
| -rw-r--r-- | libs/rs/rsLocklessFifo.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/rs/rsLocklessFifo.cpp b/libs/rs/rsLocklessFifo.cpp index 3f8854330acf..70b72783863e 100644 --- a/libs/rs/rsLocklessFifo.cpp +++ b/libs/rs/rsLocklessFifo.cpp @@ -100,7 +100,9 @@ void LocklessCommandFifo::commit(uint32_t command, uint32_t sizeInBytes) { //dumpState("commit 1"); reinterpret_cast<uint16_t *>(mPut)[0] = command; reinterpret_cast<uint16_t *>(mPut)[1] = sizeInBytes; - mPut += ((sizeInBytes + 3) & ~3) + 4; + + int32_t s = ((sizeInBytes + 3) & ~3) + 4; + android_atomic_add(s, (int32_t *)&mPut); //dumpState("commit 2"); mSignalToWorker.set(); } |