Monero
Loading...
Searching...
No Matches
reg_exp_definer.h File Reference
#include <atomic>
#include <boost/regex.hpp>
#include "syncobj.h"
Include dependency graph for reg_exp_definer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  epee::global_regexp_critical_section

Namespaces

namespace  epee
 TODO: (mj-xmr) This will be reduced in an another PR.

Macros

#define STATIC_REGEXP_EXPR_1(var_name, xpr_text, reg_exp_flags)
#define STATIC_REGEXP_EXPR_2(var_name, xpr_text, reg_exp_flags)
#define STATIC_REGEXP_EXPR_3(var_name, xpr_text, reg_exp_flags)

Variables

static const global_regexp_critical_section epee::gregexplock

Macro Definition Documentation

◆ STATIC_REGEXP_EXPR_1

#define STATIC_REGEXP_EXPR_1 ( var_name,
xpr_text,
reg_exp_flags )
Value:
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)\
{\
regexp_initialized_1 = true;\
gregexplock.get_lock().unlock();\
}
void lock()
Definition syncobj.h:99
void unlock()
Definition syncobj.h:105
critical_section & get_lock() const
Definition reg_exp_definer.h:43
unsigned int uint32_t
Definition stdint.h:126

◆ STATIC_REGEXP_EXPR_2

#define STATIC_REGEXP_EXPR_2 ( var_name,
xpr_text,
reg_exp_flags )
Value:
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)\
{\
regexp_initialized_2 = true;\
gregexplock.get_lock().lock().unlock();\
}

◆ STATIC_REGEXP_EXPR_3

#define STATIC_REGEXP_EXPR_3 ( var_name,
xpr_text,
reg_exp_flags )
Value:
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)\
{\
regexp_initialized_3 = true;\
gregexplock.get_lock().lock().unlock();\
}