Electroneum
Loading...
Searching...
No Matches
reg_exp_definer.h File Reference
#include <boost/interprocess/detail/atomic.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

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)

Macro Definition Documentation

◆ STATIC_REGEXP_EXPR_1

#define STATIC_REGEXP_EXPR_1 ( var_name,
xpr_text,
reg_exp_flags )
Value:
static volatile uint32_t regexp_initialized_1 = 0;\
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);\
gregexplock.get_lock().unlock();\
}
critical_section & get_lock() const
unsigned int uint32_t
Definition stdint.h:126

Definition at line 47 of file reg_exp_definer.h.

47#define STATIC_REGEXP_EXPR_1(var_name, xpr_text, reg_exp_flags) \
48 static volatile uint32_t regexp_initialized_1 = 0;\
49 volatile uint32_t local_is_initialized_1 = regexp_initialized_1;\
50 if(!local_is_initialized_1)\
51 gregexplock.get_lock().lock();\
52 static const boost::regex var_name(xpr_text , reg_exp_flags);\
53 if(!local_is_initialized_1)\
54{\
55 boost::interprocess::ipcdetail::atomic_write32(&regexp_initialized_1, 1);\
56 gregexplock.get_lock().unlock();\
57}

◆ STATIC_REGEXP_EXPR_2

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

Definition at line 59 of file reg_exp_definer.h.

59#define STATIC_REGEXP_EXPR_2(var_name, xpr_text, reg_exp_flags) \
60 static volatile uint32_t regexp_initialized_2 = 0;\
61 volatile uint32_t local_is_initialized_2 = regexp_initialized_2;\
62 if(!local_is_initialized_2)\
63 gregexplock.get_lock().lock().lock();\
64 static const boost::regex var_name(xpr_text , reg_exp_flags);\
65 if(!local_is_initialized_2)\
66{\
67 boost::interprocess::ipcdetail::atomic_write32(&regexp_initialized_2, 1);\
68 gregexplock.get_lock().lock().unlock();\
69}

◆ STATIC_REGEXP_EXPR_3

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

Definition at line 71 of file reg_exp_definer.h.

71#define STATIC_REGEXP_EXPR_3(var_name, xpr_text, reg_exp_flags) \
72 static volatile uint32_t regexp_initialized_3 = 0;\
73 volatile uint32_t local_is_initialized_3 = regexp_initialized_3;\
74 if(!local_is_initialized_3)\
75 gregexplock.get_lock().lock().lock();\
76 static const boost::regex var_name(xpr_text , reg_exp_flags);\
77 if(!local_is_initialized_3)\
78{\
79 boost::interprocess::ipcdetail::atomic_write32(&regexp_initialized_3, 1);\
80 gregexplock.get_lock().lock().unlock();\
81}