diff options
| author | Jason Sams <rjsams@android.com> | 2009-09-25 14:51:22 -0700 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2009-09-25 14:51:22 -0700 |
| commit | e514b45de8561fbc6ef6770845102ca10b0a69d7 (patch) | |
| tree | 572fdc8b1dbc14b53c61f9c81f90fbc642024b45 /rsLocklessFifo.cpp | |
| parent | 86f1b23aaaf9b8822a009d8c3e585e46768abb6a (diff) | |
| download | android_frameworks_rs-e514b45de8561fbc6ef6770845102ca10b0a69d7.tar.gz android_frameworks_rs-e514b45de8561fbc6ef6770845102ca10b0a69d7.tar.bz2 android_frameworks_rs-e514b45de8561fbc6ef6770845102ca10b0a69d7.zip | |
Improve renderscript context teardown. Track object in the system and then force their cleanup by releasing all user references once destroy context is called. Java layer will no longer send destroy notifications for objects garbage collected once a context is destroyed.
Diffstat (limited to 'rsLocklessFifo.cpp')
| -rw-r--r-- | rsLocklessFifo.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rsLocklessFifo.cpp b/rsLocklessFifo.cpp index f4f5d40c..b0540a6e 100644 --- a/rsLocklessFifo.cpp +++ b/rsLocklessFifo.cpp @@ -131,6 +131,12 @@ const void * LocklessCommandFifo::get(uint32_t *command, uint32_t *bytesData) mSignalToWorker.wait(); } + if (mInShutdown) { + *command = 0; + *bytesData = 0; + return 0; + } + *command = reinterpret_cast<const uint16_t *>(mGet)[0]; *bytesData = reinterpret_cast<const uint16_t *>(mGet)[1]; if (*command) { |
