summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.h
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-08-18 17:07:09 -0700
committerJason Sams <rjsams@android.com>2009-08-18 17:07:09 -0700
commit730ee65d4ddb307898053b623120bad1655fadad (patch)
treeea3d8f41940ef06af43a5fe5436c9c9c3943227d /libs/rs/rsContext.h
parent7ce033d797e5df5e2131e2ed459fba181eaf4658 (diff)
downloadframeworks_base-730ee65d4ddb307898053b623120bad1655fadad.zip
frameworks_base-730ee65d4ddb307898053b623120bad1655fadad.tar.gz
frameworks_base-730ee65d4ddb307898053b623120bad1655fadad.tar.bz2
Implement OOB destroy method that can be called from the java finalizer removing the need to explicitly destroy objects.
Diffstat (limited to 'libs/rs/rsContext.h')
-rw-r--r--libs/rs/rsContext.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h
index 3d17298..52901b2 100644
--- a/libs/rs/rsContext.h
+++ b/libs/rs/rsContext.h
@@ -118,6 +118,7 @@ public:
ThreadIO mIO;
+ void objDestroyAdd(ObjectBase *);
protected:
Device *mDev;
@@ -142,6 +143,17 @@ protected:
ObjectBaseRef<ProgramVertex> mVertex;
ObjectBaseRef<ProgramFragmentStore> mFragmentStore;
+
+ struct ObjDestroyOOB {
+ pthread_mutex_t mMutex;
+ Vector<ObjectBase *> mDestroyList;
+ bool mNeedToEmpty;
+ };
+ ObjDestroyOOB mObjDestroy;
+ bool objDestroyOOBInit();
+ void objDestroyOOBRun();
+ void objDestroyOOBDestroy();
+
private:
Context();