diff options
| author | Jason Sams <rjsams@android.com> | 2010-07-20 15:09:00 -0700 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2010-07-20 15:09:00 -0700 |
| commit | c7f4e41ecd8211227b4f0037ac3312a83db389cc (patch) | |
| tree | 1ba74c5c5055afc135268d68f7d9f14d162f3fd5 /libs/rs/rsContext.cpp | |
| parent | f91f2971a8a03026664666c332abe73f70c5b437 (diff) | |
| download | frameworks_base-c7f4e41ecd8211227b4f0037ac3312a83db389cc.zip frameworks_base-c7f4e41ecd8211227b4f0037ac3312a83db389cc.tar.gz frameworks_base-c7f4e41ecd8211227b4f0037ac3312a83db389cc.tar.bz2 | |
Update imageprocessing to remove generated files.
Fix thread launch race condition.
Change-Id: I24d7f87ac87db6f9e3418d6a429471a71d2c9e9d
Diffstat (limited to 'libs/rs/rsContext.cpp')
| -rw-r--r-- | libs/rs/rsContext.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index 629b481..e897d00 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -361,7 +361,7 @@ void * Context::helperThreadProc(void *vrsc) Context *rsc = static_cast<Context *>(vrsc); uint32_t idx = (uint32_t)android_atomic_inc(&rsc->mWorkers.mLaunchCount); - LOGE("helperThreadProc 1 %p idx=%i", rsc, idx); + LOGV("RS helperThread starting %p idx=%i", rsc, idx); rsc->mWorkers.mLaunchSignals[idx].init(); rsc->mWorkers.mNativeThreadId[idx] = gettid(); @@ -376,13 +376,13 @@ void * Context::helperThreadProc(void *vrsc) while(rsc->mRunning) { rsc->mWorkers.mLaunchSignals[idx].wait(); if (rsc->mWorkers.mLaunchCallback) { - LOGE("helperThreadProc 4"); rsc->mWorkers.mLaunchCallback(rsc->mWorkers.mLaunchData, idx); } - LOGE("helperThreadProc 5"); android_atomic_dec(&rsc->mWorkers.mRunningCount); rsc->mWorkers.mCompleteSignal.set(); } + + LOGV("RS helperThread exiting %p idx=%i", rsc, idx); return NULL; } @@ -479,6 +479,10 @@ Context::Context(Device *dev, bool isGraphics, bool useDepth) LOGE("Failed to start rs context thread."); return; } + while(!mRunning) { + usleep(100); + } + mWorkers.mRunningCount = 0; mWorkers.mLaunchCount = 0; for (uint32_t ct=0; ct < mWorkers.mCount; ct++) { @@ -490,9 +494,6 @@ Context::Context(Device *dev, bool isGraphics, bool useDepth) } } - while(!mRunning) { - usleep(100); - } pthread_attr_destroy(&threadAttr); } |
