From a359ee9ff349448a744140b352444171efc29899 Mon Sep 17 00:00:00 2001 From: SiCong Li Date: Tue, 18 Apr 2023 13:49:56 +0100 Subject: Fix excessive calls to clReleaseCommandQueue Use the queue object from the singleton Scheduler to avoid repeatedly freeing cl::CommandQueue object on the stack. Resolves COMPMID-6021 Change-Id: I0baf5891a7974cf4c7efad1b13cc5f28e49a2745 Signed-off-by: SiCong Li Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9896 Reviewed-by: Jakub Sujak Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins Tested-by: Arm Jenkins --- src/runtime/CL/CLMemoryRegion.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/runtime/CL') diff --git a/src/runtime/CL/CLMemoryRegion.cpp b/src/runtime/CL/CLMemoryRegion.cpp index 780a563d63..380e4062ee 100644 --- a/src/runtime/CL/CLMemoryRegion.cpp +++ b/src/runtime/CL/CLMemoryRegion.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Arm Limited. + * Copyright (c) 2018-2021, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -30,7 +30,6 @@ namespace arm_compute { ICLMemoryRegion::ICLMemoryRegion(size_t size) : IMemoryRegion(size), - _queue(CLScheduler::get().queue()), _ctx(CLScheduler::get().context()), _mapping(nullptr), _mem() @@ -111,7 +110,7 @@ ICLSVMMemoryRegion::~ICLSVMMemoryRegion() { try { - clFinish(_queue.get()); + clFinish(CLScheduler::get().queue().get()); _mem = cl::Buffer(); clSVMFree(_ctx.get(), _ptr); } -- cgit v1.2.1