μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
uhal::SigBusGuard Class Reference

#include <uhal/SigBusGuard.hpp>

Collaboration diagram for uhal::SigBusGuard:
[legend]

Public Member Functions

 SigBusGuard ()
 
 ~SigBusGuard ()
 
void protect (const std::function< void()> &, const std::string &)
 

Static Public Member Functions

static void blockSIGBUS ()
 

Static Private Member Functions

static void handle (int)
 

Private Attributes

std::lock_guard< std::mutex > mLockGuard
 
struct sigaction mAction
 
struct sigaction mOriginalAction
 
sigset_t mOriginalMask
 

Static Private Attributes

static std::mutex sMutex
 
static sigjmp_buf sEnv
 
static volatile sig_atomic_t sProtected = 0
 

Detailed Description

Definition at line 58 of file SigBusGuard.hpp.

Constructor & Destructor Documentation

◆ SigBusGuard()

uhal::SigBusGuard::SigBusGuard ( )

Definition at line 47 of file SigBusGuard.cpp.

◆ ~SigBusGuard()

uhal::SigBusGuard::~SigBusGuard ( )

Member Function Documentation

◆ blockSIGBUS()

void uhal::SigBusGuard::blockSIGBUS ( )
static

Definition at line 121 of file SigBusGuard.cpp.

References uhal::Integer(), uhal::log(), and uhal::Quote().

Referenced by PYBIND11_MODULE().

◆ handle()

void uhal::SigBusGuard::handle ( int  aSignal)
staticprivate

Definition at line 135 of file SigBusGuard.cpp.

References uhal::message, sEnv, and sProtected.

◆ protect()

void uhal::SigBusGuard::protect ( const std::function< void()> &  aAccess,
const std::string &  aMessage 
)

Definition at line 98 of file SigBusGuard.cpp.

References uhal::log(), sEnv, and sProtected.

Referenced by uhal::Mmap::File::read(), and uhal::Mmap::File::write().

Member Data Documentation

◆ mAction

struct sigaction uhal::SigBusGuard::mAction
private

Definition at line 71 of file SigBusGuard.hpp.

◆ mLockGuard

std::lock_guard<std::mutex> uhal::SigBusGuard::mLockGuard
private

Definition at line 70 of file SigBusGuard.hpp.

◆ mOriginalAction

struct sigaction uhal::SigBusGuard::mOriginalAction
private

Definition at line 72 of file SigBusGuard.hpp.

Referenced by ~SigBusGuard().

◆ mOriginalMask

sigset_t uhal::SigBusGuard::mOriginalMask
private

Definition at line 73 of file SigBusGuard.hpp.

Referenced by ~SigBusGuard().

◆ sEnv

sigjmp_buf uhal::SigBusGuard::sEnv
staticprivate

Definition at line 76 of file SigBusGuard.hpp.

Referenced by handle(), and protect().

◆ sMutex

std::mutex uhal::SigBusGuard::sMutex
staticprivate

Definition at line 75 of file SigBusGuard.hpp.

◆ sProtected

volatile sig_atomic_t uhal::SigBusGuard::sProtected = 0
staticprivate

Definition at line 77 of file SigBusGuard.hpp.

Referenced by handle(), and protect().


The documentation for this class was generated from the following files: