aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/reg_exp_definer.h
diff options
context:
space:
mode:
authorJeffrey <jeffryan@tamu.edu>2022-03-30 13:18:32 -0500
committerJeffrey <jeffryan@tamu.edu>2022-03-30 13:18:32 -0500
commit17772ef53e57620f47c426fa4557671a86f1b3ae (patch)
tree020360b108dbb6655eb4d8f7b17f569d185dd926 /contrib/epee/include/reg_exp_definer.h
parentMerge pull request #8216 (diff)
downloadmonero-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.h14
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(&regexp_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(&regexp_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(&regexp_initialized_3, 1);\
+ regexp_initialized_3 = true;\
gregexplock.get_lock().lock().unlock();\
}
}