Commit 351d09c0 authored by pruthvi's avatar pruthvi

move mutex declaration to private member inside CPU_Backend class

parent 9ef7923e
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
// limitations under the License. // limitations under the License.
//***************************************************************************** //*****************************************************************************
#include <mutex>
#include <tbb/tbb_stddef.h> #include <tbb/tbb_stddef.h>
#include "cpu_backend_visibility.h" #include "cpu_backend_visibility.h"
...@@ -29,10 +28,6 @@ ...@@ -29,10 +28,6 @@
using namespace ngraph; using namespace ngraph;
using namespace std; using namespace std;
// this mutex will be used to protect the addition and deletion
// of function to m_exec_map across multiple threads
std::mutex exec_map_mutex;
extern "C" runtime::BackendConstructor* get_backend_constructor_pointer() extern "C" runtime::BackendConstructor* get_backend_constructor_pointer()
{ {
class CPU_BackendConstructor : public runtime::BackendConstructor class CPU_BackendConstructor : public runtime::BackendConstructor
...@@ -95,7 +90,7 @@ shared_ptr<runtime::Executable> ...@@ -95,7 +90,7 @@ shared_ptr<runtime::Executable>
ngraph::pass::PassConfig& pass_config, ngraph::pass::PassConfig& pass_config,
bool performance_counters_enabled) bool performance_counters_enabled)
{ {
std::lock_guard<std::mutex> guard(exec_map_mutex); std::lock_guard<std::mutex> guard(m_exec_map_mutex);
shared_ptr<runtime::Executable> rc; shared_ptr<runtime::Executable> rc;
auto it = m_exec_map.find(func); auto it = m_exec_map.find(func);
if (it != m_exec_map.end()) if (it != m_exec_map.end())
...@@ -150,7 +145,7 @@ bool runtime::cpu::CPU_Executable::call(const vector<shared_ptr<runtime::Tensor> ...@@ -150,7 +145,7 @@ bool runtime::cpu::CPU_Executable::call(const vector<shared_ptr<runtime::Tensor>
void runtime::cpu::CPU_Backend::remove_compiled_function(shared_ptr<Executable> exec) void runtime::cpu::CPU_Backend::remove_compiled_function(shared_ptr<Executable> exec)
{ {
std::lock_guard<std::mutex> guard(exec_map_mutex); std::lock_guard<std::mutex> guard(m_exec_map_mutex);
for (auto it = m_exec_map.begin(); it != m_exec_map.end(); ++it) for (auto it = m_exec_map.begin(); it != m_exec_map.end(); ++it)
{ {
if (it->second == exec) if (it->second == exec)
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <map> #include <map>
#include <memory> #include <memory>
#include <mutex>
#include "cpu_backend_visibility.h" #include "cpu_backend_visibility.h"
#include "ngraph/pass/pass_config.hpp" #include "ngraph/pass/pass_config.hpp"
...@@ -63,6 +64,9 @@ namespace ngraph ...@@ -63,6 +64,9 @@ namespace ngraph
bool is_supported_property(const Property prop) const override; bool is_supported_property(const Property prop) const override;
private: private:
// this mutex will be used to protect the addition and deletion
// of function to m_exec_map across multiple threads
std::mutex m_exec_map_mutex;
std::unordered_map<std::shared_ptr<Function>, std::shared_ptr<Executable>> std::unordered_map<std::shared_ptr<Function>, std::shared_ptr<Executable>>
m_exec_map; m_exec_map;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment