qxLib
perf_scope.h
Go to the documentation of this file.
1 /**
2 
3  @file perf_scope.h
4  @brief Contains perf scope macros for profiler (for internal usage only, but user may override them)
5  @author Khrapov
6  @date 22.12.2022
7  @copyright © Nick Khrapov, 2022. All right reserved.
8 
9 **/
10 #pragma once
11 
12 #include <qx/macros/common.h>
13 
14 #ifndef QX_PERF_SCOPE
15  // ... is category + name
16  // or category
17  // or name
18  // or empty
19  #define QX_PERF_SCOPE(...) QX_EMPTY_MACRO
20 #endif
21 
22 #ifndef QX_PERF_FREE_MUTEX
23  #define QX_PERF_FREE_MUTEX(name) std::mutex name
24 #endif
25 
26 #ifndef QX_PERF_FREE_SHARED_MUTEX
27  #define QX_PERF_FREE_SHARED_MUTEX(name) std::shared_mutex name
28 #endif
29 
30 #ifndef QX_PERF_MUTEX
31  #define QX_PERF_MUTEX(name) mutable std::mutex name
32 #endif
33 
34 #ifndef QX_PERF_SHARED_MUTEX
35  #define QX_PERF_SHARED_MUTEX(name) mutable std::shared_mutex name
36 #endif