summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-07-20 15:09:00 -0700
committerJason Sams <rjsams@android.com>2010-07-20 15:09:00 -0700
commitc7f4e41ecd8211227b4f0037ac3312a83db389cc (patch)
tree1ba74c5c5055afc135268d68f7d9f14d162f3fd5 /libs/rs/rsContext.cpp
parentf91f2971a8a03026664666c332abe73f70c5b437 (diff)
downloadframeworks_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.cpp13
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);
}