CiCueTea v0.0.1
Loading...
Searching...
No Matches
RTChecker.h
Go to the documentation of this file.
1//
2// RTChecker.h
3// CQTDSP
4//
5// Created by Juan Sierra on 6/15/25.
6//
7
28
29#pragma once
30
31#include <Eigen/Core>
32
33#ifdef REALTIME_CHECKS
34# if EIGEN_VERSION_AT_LEAST(5, 0, 0)
35# define ENTERING_REAL_TIME_CRITICAL_CODE \
36 Eigen::internal::set_is_malloc_allowed(false); \
37 Eigen::internal::set_is_free_allowed(false);
38# define EXITING_REAL_TIME_CRITICAL_CODE \
39 Eigen::internal::set_is_free_allowed(true); \
40 Eigen::internal::set_is_malloc_allowed(true);
41# else
42# define ENTERING_REAL_TIME_CRITICAL_CODE \
43 Eigen::internal::set_is_malloc_allowed(false);
44# define EXITING_REAL_TIME_CRITICAL_CODE \
45 Eigen::internal::set_is_malloc_allowed(true);
46# endif
47#else
48# define ENTERING_REAL_TIME_CRITICAL_CODE
49# define EXITING_REAL_TIME_CRITICAL_CODE
50#endif
51
52namespace jsa::cicuetea {
53
54class RealTimeChecker
55{
56 public:
57 RealTimeChecker() { ENTERING_REAL_TIME_CRITICAL_CODE }
58
59 ~RealTimeChecker() { EXITING_REAL_TIME_CRITICAL_CODE }
60};
61
62} // namespace jsa::cicuetea