mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 08:53:55 +08:00
[Sysman] Replace normal pointers with smart pointers (10/n)
Replacing normal pointers by smart pointers in fan module of L0 sysman. Related-To: LOCI-2810 Signed-off-by: Singh, Prasoon <prasoon.singh@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c927c46495
commit
71fe65b327
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2022 Intel Corporation
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -13,18 +13,12 @@
|
||||
|
||||
namespace L0 {
|
||||
|
||||
FanHandleContext::~FanHandleContext() {
|
||||
for (Fan *pFan : handleList) {
|
||||
delete pFan;
|
||||
}
|
||||
}
|
||||
FanHandleContext::~FanHandleContext() = default;
|
||||
|
||||
void FanHandleContext::init() {
|
||||
Fan *pFan = new FanImp(pOsSysman);
|
||||
std::unique_ptr<Fan> pFan = std::make_unique<FanImp>(pOsSysman);
|
||||
if (pFan->initSuccess == true) {
|
||||
handleList.push_back(pFan);
|
||||
} else {
|
||||
delete pFan;
|
||||
handleList.push_back(std::move(pFan));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2022 Intel Corporation
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -8,6 +8,7 @@
|
||||
#pragma once
|
||||
#include <level_zero/zes_api.h>
|
||||
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
@@ -42,7 +43,7 @@ struct FanHandleContext {
|
||||
ze_result_t fanGet(uint32_t *pCount, zes_fan_handle_t *phFan);
|
||||
|
||||
OsSysman *pOsSysman = nullptr;
|
||||
std::vector<Fan *> handleList = {};
|
||||
std::vector<std::unique_ptr<Fan>> handleList = {};
|
||||
|
||||
private:
|
||||
std::once_flag initFanOnce;
|
||||
|
||||
@@ -48,11 +48,6 @@ void FanImp::init() {
|
||||
}
|
||||
}
|
||||
|
||||
FanImp::~FanImp() {
|
||||
if (nullptr != pOsFan) {
|
||||
delete pOsFan;
|
||||
pOsFan = nullptr;
|
||||
}
|
||||
}
|
||||
FanImp::~FanImp() = default;
|
||||
|
||||
} // namespace L0
|
||||
|
||||
@@ -25,7 +25,7 @@ class FanImp : public Fan, NEO::NonCopyableOrMovableClass {
|
||||
FanImp(OsSysman *pOsSysman);
|
||||
~FanImp() override;
|
||||
|
||||
OsFan *pOsFan = nullptr;
|
||||
std::unique_ptr<OsFan> pOsFan;
|
||||
void init();
|
||||
};
|
||||
} // namespace L0
|
||||
|
||||
@@ -42,9 +42,9 @@ bool LinuxFanImp::isFanModuleSupported() {
|
||||
LinuxFanImp::LinuxFanImp(OsSysman *pOsSysman) {
|
||||
}
|
||||
|
||||
OsFan *OsFan::create(OsSysman *pOsSysman) {
|
||||
LinuxFanImp *pLinuxFanImp = new LinuxFanImp(pOsSysman);
|
||||
return static_cast<OsFan *>(pLinuxFanImp);
|
||||
std::unique_ptr<OsFan> OsFan::create(OsSysman *pOsSysman) {
|
||||
std::unique_ptr<LinuxFanImp> pLinuxFanImp = std::make_unique<LinuxFanImp>(pOsSysman);
|
||||
return pLinuxFanImp;
|
||||
}
|
||||
|
||||
} // namespace L0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
#include <level_zero/zes_api.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace L0 {
|
||||
|
||||
struct OsSysman;
|
||||
@@ -21,7 +23,7 @@ class OsFan {
|
||||
virtual ze_result_t setSpeedTableMode(const zes_fan_speed_table_t *pSpeedTable) = 0;
|
||||
virtual ze_result_t getState(zes_fan_speed_units_t units, int32_t *pSpeed) = 0;
|
||||
virtual bool isFanModuleSupported() = 0;
|
||||
static OsFan *create(OsSysman *pOsSysman);
|
||||
static std::unique_ptr<OsFan> create(OsSysman *pOsSysman);
|
||||
virtual ~OsFan() = default;
|
||||
};
|
||||
|
||||
|
||||
@@ -218,9 +218,9 @@ WddmFanImp::WddmFanImp(OsSysman *pOsSysman) {
|
||||
pKmdSysManager = &pWddmSysmanImp->getKmdSysManager();
|
||||
}
|
||||
|
||||
OsFan *OsFan::create(OsSysman *pOsSysman) {
|
||||
WddmFanImp *pWddmFanImp = new WddmFanImp(pOsSysman);
|
||||
return static_cast<OsFan *>(pWddmFanImp);
|
||||
std::unique_ptr<OsFan> OsFan::create(OsSysman *pOsSysman) {
|
||||
std::unique_ptr<WddmFanImp> pWddmFanImp = std::make_unique<WddmFanImp>(pOsSysman);
|
||||
return pWddmFanImp;
|
||||
}
|
||||
|
||||
} // namespace L0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2022 Intel Corporation
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -36,10 +36,6 @@ class SysmanDeviceFanFixture : public SysmanDeviceFixture {
|
||||
pOriginalKmdSysManager = pWddmSysmanImp->pKmdSysManager;
|
||||
pWddmSysmanImp->pKmdSysManager = pKmdSysManager.get();
|
||||
|
||||
for (auto handle : pSysmanDeviceImp->pFanHandleContext->handleList) {
|
||||
delete handle;
|
||||
}
|
||||
|
||||
pSysmanDeviceImp->pFanHandleContext->handleList.clear();
|
||||
}
|
||||
void TearDown() override {
|
||||
|
||||
Reference in New Issue
Block a user