diff options
| author | Glenn Kasten <gkasten@google.com> | 2013-09-20 18:10:28 +0000 |
|---|---|---|
| committer | Glenn Kasten <gkasten@google.com> | 2013-09-20 18:10:28 +0000 |
| commit | f69cd6787d39188ea7bc41fe7d54314fb18eb214 (patch) | |
| tree | 4ae522180685ba5de382073a196e41b07ae76986 /core/jni | |
| parent | 8d87d7ba113ad90685f1d2669e65251a9b422a5a (diff) | |
| download | frameworks_base-f69cd6787d39188ea7bc41fe7d54314fb18eb214.zip frameworks_base-f69cd6787d39188ea7bc41fe7d54314fb18eb214.tar.gz frameworks_base-f69cd6787d39188ea7bc41fe7d54314fb18eb214.tar.bz2 | |
Revert "Workaround for slow AudioRecord destructor"
This reverts commit 8d87d7ba113ad90685f1d2669e65251a9b422a5a.
Change-Id: I78cbe73959d29fc0ff3153268503ae685cd0995c
Diffstat (limited to 'core/jni')
| -rw-r--r-- | core/jni/android_media_AudioRecord.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp index 3994047..1c43cc5 100644 --- a/core/jni/android_media_AudioRecord.cpp +++ b/core/jni/android_media_AudioRecord.cpp @@ -310,18 +310,6 @@ android_media_AudioRecord_stop(JNIEnv *env, jobject thiz) // ---------------------------------------------------------------------------- -// This class is used to destroy a RefBase asynchronously -class AsyncDestructThread : public Thread -{ -public: - AsyncDestructThread(sp<RefBase> refBase) : mRefBase(refBase) { } -protected: - virtual ~AsyncDestructThread() { } -private: - virtual bool threadLoop() { return false; } - const sp<RefBase> mRefBase; -}; - #define CALLBACK_COND_WAIT_TIMEOUT_MS 1000 static void android_media_AudioRecord_release(JNIEnv *env, jobject thiz) { sp<AudioRecord> lpRecorder = setAudioRecord(env, thiz, 0); @@ -354,17 +342,6 @@ static void android_media_AudioRecord_release(JNIEnv *env, jobject thiz) { env->DeleteGlobalRef(lpCookie->audioRecord_ref); delete lpCookie; } - // FIXME AudioRecord destruction should not be slow - if (lpRecorder != 0) { - // must be a raw reference to avoid a race after run() - AsyncDestructThread *adt = new AsyncDestructThread(lpRecorder); - // guaranteed to not run destructor - lpRecorder.clear(); - // after the run(), adt thread will hold a strong reference to lpRecorder, - // and the only strong reference to itself - adt->run("AsyncDestruct"); - // do not delete adt here: adt thread destroys itself, and lpRecorder if needed - } } |
