am fe7c2a50: Merge change I996db8da into eclair
Merge commit 'fe7c2a50148ac9f0d6fbe0030fc53f457c10870a' into eclair-plus-aosp * commit 'fe7c2a50148ac9f0d6fbe0030fc53f457c10870a': Fix tls crash on startup if more than one RS contexts are created in one process.
This commit is contained in:
@@ -304,10 +304,15 @@ Context::Context(Device *dev, Surface *sur, bool useDepth)
|
||||
int status;
|
||||
pthread_attr_t threadAttr;
|
||||
|
||||
status = pthread_key_create(&gThreadTLSKey, NULL);
|
||||
if (status) {
|
||||
LOGE("Failed to init thread tls key.");
|
||||
return;
|
||||
if (!gThreadTLSKey) {
|
||||
status = pthread_key_create(&gThreadTLSKey, NULL);
|
||||
if (status) {
|
||||
LOGE("Failed to init thread tls key.");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// HACK: workaround gl hang on start
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
status = pthread_attr_init(&threadAttr);
|
||||
|
||||
@@ -62,6 +62,7 @@ bool ScriptC::run(Context *rsc, uint32_t launchIndex)
|
||||
{
|
||||
Context::ScriptTLSStruct * tls =
|
||||
(Context::ScriptTLSStruct *)pthread_getspecific(Context::gThreadTLSKey);
|
||||
rsAssert(tls);
|
||||
|
||||
if (mEnviroment.mFragmentStore.get()) {
|
||||
rsc->setFragmentStore(mEnviroment.mFragmentStore.get());
|
||||
|
||||
Reference in New Issue
Block a user