@@ -1038,6 +1038,17 @@ class UpdateNodesSeq : public IUpdateNodes {
1038
1038
#endif
1039
1039
1040
1040
#if (OV_THREAD == OV_THREAD_TBB || OV_THREAD == OV_THREAD_TBB_AUTO || OV_THREAD == OV_THREAD_OMP)
1041
+
1042
+ #if __cplusplus >= 202002L
1043
+ #define ov_memory_order_release std::memory_order_release
1044
+ #define ov_memory_order_relaxed std::memory_order_relaxed
1045
+ #define ov_memory_order_acquire std::memory_order_acquire
1046
+ #else
1047
+ #define ov_memory_order_release std::memory_order::memory_order_release
1048
+ #define ov_memory_order_relaxed std::memory_order::memory_order_relaxed
1049
+ #define ov_memory_order_acquire std::memory_order::memory_order_acquire
1050
+ #endif
1051
+
1041
1052
class UpdateNodesBase : public IUpdateNodes {
1042
1053
public:
1043
1054
explicit UpdateNodesBase (std::vector<NodePtr>& executableGraphNodes) : m_executableGraphNodes(executableGraphNodes) {}
@@ -1048,22 +1059,22 @@ class UpdateNodesBase : public IUpdateNodes {
1048
1059
if (node->isDynamicNode ()) {
1049
1060
node->updateShapes ();
1050
1061
}
1051
- m_prepareCounter.store (i, std::memory_order::memory_order_release );
1062
+ m_prepareCounter.store (i, ov_memory_order_release );
1052
1063
}
1053
1064
}
1054
1065
catch (...) {
1055
- m_completion.store (true , std::memory_order::memory_order_relaxed );
1066
+ m_completion.store (true , ov_memory_order_relaxed );
1056
1067
throw ;
1057
1068
}
1058
- m_prepareCounter.store (stop_indx, std::memory_order::memory_order_relaxed );
1059
- m_completion.store (true , std::memory_order::memory_order_release );
1069
+ m_prepareCounter.store (stop_indx, ov_memory_order_relaxed );
1070
+ m_completion.store (true , ov_memory_order_release );
1060
1071
}
1061
1072
1062
1073
void updateDynParams (size_t node_indx, size_t /* unused*/ ) {
1063
1074
size_t local_counter = node_indx;
1064
1075
while (true ) {
1065
- const bool completion = m_completion.load (std::memory_order::memory_order_acquire );
1066
- const size_t prepareCounter = m_prepareCounter.load (std::memory_order::memory_order_relaxed );
1076
+ const bool completion = m_completion.load (ov_memory_order_acquire );
1077
+ const size_t prepareCounter = m_prepareCounter.load (ov_memory_order_relaxed );
1067
1078
if (completion && local_counter == prepareCounter) {
1068
1079
break ;
1069
1080
}
@@ -1082,6 +1093,10 @@ class UpdateNodesBase : public IUpdateNodes {
1082
1093
std::vector<NodePtr>& m_executableGraphNodes;
1083
1094
};
1084
1095
1096
+ #undef ov_memory_order_release
1097
+ #undef ov_memory_order_relaxed
1098
+ #undef ov_memory_order_acquire
1099
+
1085
1100
#if (OV_THREAD == OV_THREAD_TBB || OV_THREAD == OV_THREAD_TBB_AUTO)
1086
1101
#if (TBB_VERSION_MAJOR > 2020)
1087
1102
template <typename Body>
0 commit comments