Collaboration diagram for LoggingSectionGuard:

Public Member Functions

 LoggingSectionGuard ()
 
 ~LoggingSectionGuard ()
 

Static Public Member Functions

static bool Busy ()
 whether new debugs() messages must be queued More...
 

Static Private Attributes

static size_t LoggingConcurrencyLevel = 0
 the current number of protected callers More...
 

Detailed Description

Maintains the number of code paths on the current call stack that need protection from new debugs() calls. Squid cannot block re-entrant debugs() calls, but the high-level debugs() handling code queues re-entrant logging attempts when Busy() instead of letting them through to sensitive code.

Definition at line 329 of file debug.cc.

Constructor & Destructor Documentation

◆ LoggingSectionGuard()

LoggingSectionGuard::LoggingSectionGuard ( )

Definition at line 419 of file debug.cc.

References LoggingConcurrencyLevel.

◆ ~LoggingSectionGuard()

LoggingSectionGuard::~LoggingSectionGuard ( )

Definition at line 424 of file debug.cc.

References LoggingConcurrencyLevel, and Debug::LogWaitingForIdle().

Member Function Documentation

◆ Busy()

static bool LoggingSectionGuard::Busy ( )
inlinestatic

Definition at line 336 of file debug.cc.

References LoggingConcurrencyLevel.

Referenced by Debug::Start().

Member Data Documentation

◆ LoggingConcurrencyLevel

size_t LoggingSectionGuard::LoggingConcurrencyLevel = 0
staticprivate

Definition at line 340 of file debug.cc.

Referenced by Busy(), LoggingSectionGuard(), and ~LoggingSectionGuard().


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

 

Introduction

Documentation

Support

Miscellaneous