1 /* 2 * 3 * Copyright 2017, The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 #define LOG_TAG "AudioFlinger" 19 //#define LOG_NDEBUG 0 20 #include <utils/Log.h> 21 22 #include <pthread.h> 23 #include "TypedLogger.h" 24 25 namespace android::aflog { 26 27 // External linkage access of thread local storage outside of this shared library 28 // causes orphaned memory allocations. This occurs in the implementation of 29 // __emutls_get_address(), see b/284657986. 30 // 31 // We only expose a thread local storage getter and setter here, not the 32 // actual thread local variable. 33 34 namespace { 35 thread_local NBLog::Writer *tlNBLogWriter; 36 } // namespace 37 getThreadWriter()38NBLog::Writer *getThreadWriter() { 39 return tlNBLogWriter; 40 } 41 setThreadWriter(NBLog::Writer * writer)42void setThreadWriter(NBLog::Writer *writer) { 43 tlNBLogWriter = writer; 44 } 45 46 } // namespace android::aflog 47