/* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FRAMEWORKS_BASE_COMMONPOOLBASE_H #define FRAMEWORKS_BASE_COMMONPOOLBASE_H #include #include #include #include "renderthread/RenderThread.h" namespace android { namespace uirenderer { class CommonPoolBase { PREVENT_COPY_AND_ASSIGN(CommonPoolBase); protected: CommonPoolBase() {} void setupThread(int i, std::mutex& mLock, std::vector& tids, std::vector& tidConditionVars) { std::array name{"hwuiTask"}; snprintf(name.data(), name.size(), "hwuiTask%d", i); { std::unique_lock lock(mLock); tids[i] = -1; tidConditionVars[i].notify_one(); } auto startHook = renderthread::RenderThread::getOnStartHook(); if (startHook) { startHook(name.data()); } } bool supportsTid() { return false; } }; } // namespace uirenderer } // namespace android #endif // FRAMEWORKS_BASE_COMMONPOOLBASE_H