fix: use unique_ptr for metrics library

Related-To: NEO-15111

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
This commit is contained in:
Joshua Santosh Ranjan
2025-06-16 12:34:25 +00:00
committed by Compute-Runtime-Automation
parent 8e45fb880f
commit f574534602
3 changed files with 7 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2024 Intel Corporation
* Copyright (C) 2020-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -179,7 +179,7 @@ void MetricsLibrary::release() {
bool MetricsLibrary::load() {
// Load library.
handle = NEO::OsLibrary::loadFunc({getFilename()});
handle.reset(NEO::OsLibrary::loadFunc({getFilename()}));
// Load exported functions.
if (handle) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2024 Intel Corporation
* Copyright (C) 2020-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -97,7 +97,7 @@ struct MetricsLibrary {
ClientGen getGenType(const NEO::GfxCoreHelper &gfxCoreHelper) const;
protected:
NEO::OsLibrary *handle = nullptr;
std::unique_ptr<NEO::OsLibrary> handle;
OaMetricSourceImp &metricSource;
ze_result_t initializationState = ZE_RESULT_ERROR_UNINITIALIZED;
bool isWorkloadPartitionEnabled = false;

View File

@@ -41,7 +41,7 @@ void MetricContextFixture::setUp() {
// Mock metrics library.
mockMetricsLibrary = std::unique_ptr<Mock<MetricsLibrary>>(new (std::nothrow) Mock<MetricsLibrary>(metricSource));
mockMetricsLibrary->setMockedApi(&mockMetricsLibraryApi);
mockMetricsLibrary->handle = new MockOsLibrary();
mockMetricsLibrary->handle = std::make_unique<MockOsLibrary>();
// Mock metric enumeration.
mockMetricEnumeration = std::unique_ptr<Mock<MetricEnumeration>>(new (std::nothrow) Mock<MetricEnumeration>(metricSource));
@@ -56,7 +56,6 @@ void MetricContextFixture::setUp() {
void MetricContextFixture::tearDown() {
// Restore original metrics library
delete mockMetricsLibrary->handle;
mockMetricsLibrary->setMockedApi(nullptr);
mockMetricsLibrary.reset();
@@ -106,7 +105,7 @@ void MetricMultiDeviceFixture::setUp() {
// Mock metrics library.
mockMetricsLibrary = std::unique_ptr<Mock<MetricsLibrary>>(new (std::nothrow) Mock<MetricsLibrary>(metricSource));
mockMetricsLibrary->setMockedApi(&mockMetricsLibraryApi);
mockMetricsLibrary->handle = new MockOsLibrary();
mockMetricsLibrary->handle = std::make_unique<MockOsLibrary>();
// Mock metric enumeration.
mockMetricEnumeration = std::unique_ptr<Mock<MetricEnumeration>>(new (std::nothrow) Mock<MetricEnumeration>(metricSource));
@@ -126,7 +125,7 @@ void MetricMultiDeviceFixture::setUp() {
mockMetricsLibrarySubDevices[i] = std::unique_ptr<Mock<MetricsLibrary>>(new (std::nothrow) Mock<MetricsLibrary>(metricsSubDeviceContext));
mockMetricsLibrarySubDevices[i]->setMockedApi(&mockMetricsLibraryApi);
mockMetricsLibrarySubDevices[i]->handle = new MockOsLibrary();
mockMetricsLibrarySubDevices[i]->handle = std::make_unique<MockOsLibrary>();
metricsSubDeviceContext.setInitializationState(ZE_RESULT_SUCCESS);
deviceImp.subDevices[i]->getMetricDeviceContext().setMetricsCollectionAllowed(true);
@@ -146,7 +145,6 @@ void MetricMultiDeviceFixture::tearDown() {
mockMetricEnumerationSubDevices[i]->setMockedApi(nullptr);
mockMetricEnumerationSubDevices[i].reset();
delete mockMetricsLibrarySubDevices[i]->handle;
mockMetricsLibrarySubDevices[i]->setMockedApi(nullptr);
mockMetricsLibrarySubDevices[i].reset();
}
@@ -155,7 +153,6 @@ void MetricMultiDeviceFixture::tearDown() {
mockMetricsLibrarySubDevices.clear();
// Restore original metrics library
delete mockMetricsLibrary->handle;
mockMetricsLibrary->setMockedApi(nullptr);
mockMetricsLibrary.reset();