* Copyright (c) Huawei Technologies Co., Ltd. 2026. All rights reserved.
* MindIE is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#ifndef MINDIE_PID_MANAGE_H
#define MINDIE_PID_MANAGE_H
#include <sys/types.h>
#include <mutex>
#include <unordered_set>
namespace mindie_llm {
class PidManager {
public:
static PidManager& Instance();
void AddIgnorePid(pid_t pid);
bool IsIgnorePid(pid_t pid) const;
private:
PidManager() = default;
~PidManager() = default;
PidManager(const PidManager&) = delete;
PidManager& operator=(const PidManager&) = delete;
std::unordered_set<pid_t> ignore_pids_;
mutable std::mutex mutex_;
};
}
#endif