Fix destruction order of singleton objects and resolve hang GLES issue.
Change-Id: I9df42d4255b371b275a74aa521406e6796ee436b
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/113901
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/src/runtime/CL/CLScheduler.cpp b/src/runtime/CL/CLScheduler.cpp
index 71a749f..bf13a25 100644
--- a/src/runtime/CL/CLScheduler.cpp
+++ b/src/runtime/CL/CLScheduler.cpp
@@ -28,6 +28,8 @@
using namespace arm_compute;
+std::once_flag CLScheduler::_initialize_symbols;
+
CLScheduler::CLScheduler()
: _context(), _queue(), _target(GPUTarget::MIDGARD), _is_initialised(false), _cl_tuner()
{
@@ -35,6 +37,7 @@
CLScheduler &CLScheduler::get()
{
+ std::call_once(_initialize_symbols, opencl_is_available);
static CLScheduler scheduler;
return scheduler;
}
@@ -59,4 +62,4 @@
{
_queue.flush();
}
-}
\ No newline at end of file
+}