diff options
author | Jeffrey <jeffryan@tamu.edu> | 2022-03-30 13:18:32 -0500 |
---|---|---|
committer | Jeffrey <jeffryan@tamu.edu> | 2022-03-30 13:18:32 -0500 |
commit | 17772ef53e57620f47c426fa4557671a86f1b3ae (patch) | |
tree | 020360b108dbb6655eb4d8f7b17f569d185dd926 /contrib/epee/include/reg_exp_definer.h | |
parent | Merge pull request #8216 (diff) | |
download | monero-17772ef53e57620f47c426fa4557671a86f1b3ae.tar.xz |
Eliminate dependence on boost::interprocess #8223
In this repo, `boost::interprocess` was being used soley to make `uint32_t` operations atomic. So I replaced each instance of
`boost::interprocess::ipcdetail::atomic(...)32` with `std::atomic` methods. I replaced member declarations as applicable. For example,
when I needed to change a `volatile uint32_t` into a `std::atomic<uint32_t>`. Sometimes, a member was being used a boolean flag, so
I replaced it with `std::atomic<bool>`.
You may notice that I didn't touch `levin_client_async.h`. That is because this file is entirely unused and will be deleted in PR monero-project#8211.
Additional changes from review:
* Make some local variables const
* Change postfix operators to prefix operators where value was not need
Diffstat (limited to 'contrib/epee/include/reg_exp_definer.h')
-rw-r--r-- | contrib/epee/include/reg_exp_definer.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/contrib/epee/include/reg_exp_definer.h b/contrib/epee/include/reg_exp_definer.h index 386a45f9a..d1b800a32 100644 --- a/contrib/epee/include/reg_exp_definer.h +++ b/contrib/epee/include/reg_exp_definer.h @@ -28,7 +28,7 @@ #ifndef _REG_EXP_DEFINER_H_ #define _REG_EXP_DEFINER_H_ -#include <boost/interprocess/detail/atomic.hpp> +#include <atomic> #include <boost/regex.hpp> #include "syncobj.h" @@ -46,38 +46,38 @@ namespace epee const static global_regexp_critical_section gregexplock; #define STATIC_REGEXP_EXPR_1(var_name, xpr_text, reg_exp_flags) \ - static volatile uint32_t regexp_initialized_1 = 0;\ + static std::atomic<bool> regexp_initialized_1(false);\ volatile uint32_t local_is_initialized_1 = regexp_initialized_1;\ if(!local_is_initialized_1)\ gregexplock.get_lock().lock();\ static const boost::regex var_name(xpr_text , reg_exp_flags);\ if(!local_is_initialized_1)\ {\ - boost::interprocess::ipcdetail::atomic_write32(®exp_initialized_1, 1);\ + regexp_initialized_1 = true;\ gregexplock.get_lock().unlock();\ } #define STATIC_REGEXP_EXPR_2(var_name, xpr_text, reg_exp_flags) \ - static volatile uint32_t regexp_initialized_2 = 0;\ + static std::atomic<bool> regexp_initialized_2(false);\ volatile uint32_t local_is_initialized_2 = regexp_initialized_2;\ if(!local_is_initialized_2)\ gregexplock.get_lock().lock().lock();\ static const boost::regex var_name(xpr_text , reg_exp_flags);\ if(!local_is_initialized_2)\ {\ - boost::interprocess::ipcdetail::atomic_write32(®exp_initialized_2, 1);\ + regexp_initialized_2 = true;\ gregexplock.get_lock().lock().unlock();\ } #define STATIC_REGEXP_EXPR_3(var_name, xpr_text, reg_exp_flags) \ - static volatile uint32_t regexp_initialized_3 = 0;\ + static std::atomic<bool> regexp_initialized_3(false);\ volatile uint32_t local_is_initialized_3 = regexp_initialized_3;\ if(!local_is_initialized_3)\ gregexplock.get_lock().lock().lock();\ static const boost::regex var_name(xpr_text , reg_exp_flags);\ if(!local_is_initialized_3)\ {\ - boost::interprocess::ipcdetail::atomic_write32(®exp_initialized_3, 1);\ + regexp_initialized_3 = true;\ gregexplock.get_lock().lock().unlock();\ } } |