Home | History | Annotate | Download | only in libOpenglRender
      1 /*
      2 * Copyright (C) 2011 The Android Open Source Project
      3 *
      4 * Licensed under the Apache License, Version 2.0 (the "License");
      5 * you may not use this file except in compliance with the License.
      6 * You may obtain a copy of the License at
      7 *
      8 * http://www.apache.org/licenses/LICENSE-2.0
      9 *
     10 * Unless required by applicable law or agreed to in writing, software
     11 * distributed under the License is distributed on an "AS IS" BASIS,
     12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 * See the License for the specific language governing permissions and
     14 * limitations under the License.
     15 */
     16 
     17 #include "ThreadInfo.h"
     18 #include "emugl/common/lazy_instance.h"
     19 #include "emugl/common/thread_store.h"
     20 
     21 namespace {
     22 
     23 class ThreadInfoStore : public ::emugl::ThreadStore {
     24 public:
     25     ThreadInfoStore() : ::emugl::ThreadStore(NULL) {}
     26 };
     27 
     28 }  // namespace
     29 
     30 static ::emugl::LazyInstance<ThreadInfoStore> s_tls = LAZY_INSTANCE_INIT;
     31 
     32 RenderThreadInfo::RenderThreadInfo() {
     33     s_tls->set(this);
     34 }
     35 
     36 RenderThreadInfo::~RenderThreadInfo() {
     37     s_tls->set(NULL);
     38 }
     39 
     40 RenderThreadInfo* RenderThreadInfo::get() {
     41     return static_cast<RenderThreadInfo*>(s_tls->get());
     42 }
     43