libMesh
Public Member Functions | Public Attributes | Private Attributes | List of all members
libMesh::ThreadBufferedSyncbuf::ThreadLocalBuffer Class Reference

A class that wraps a thread-local string. More...

Public Member Functions

 ThreadLocalBuffer (ThreadBufferedSyncbuf &owner)
 
 ~ThreadLocalBuffer ()
 Ensures we write to our sink upon destruction if our buf is non-empty. More...
 

Public Attributes

std::string buf
 per-thread buffer More...
 

Private Attributes

ThreadBufferedSyncbuf_owner
 owning syncing stream buffer More...
 

Detailed Description

A class that wraps a thread-local string.

We make sure when we're destructing and our buffer is non-empty to write to our main output sink

Definition at line 57 of file thread_buffered_syncbuf.h.

Constructor & Destructor Documentation

◆ ThreadLocalBuffer()

libMesh::ThreadBufferedSyncbuf::ThreadLocalBuffer::ThreadLocalBuffer ( ThreadBufferedSyncbuf owner)
inlineexplicit

Definition at line 60 of file thread_buffered_syncbuf.h.

60 : _owner(owner) {}
ThreadBufferedSyncbuf & _owner
owning syncing stream buffer

◆ ~ThreadLocalBuffer()

libMesh::ThreadBufferedSyncbuf::ThreadLocalBuffer::~ThreadLocalBuffer ( )

Ensures we write to our sink upon destruction if our buf is non-empty.

Definition at line 88 of file thread_buffered_syncbuf.C.

References _owner, buf, and libMesh::ThreadBufferedSyncbuf::emit_from_thread_local_buffer().

89 {
90  // Runs at thread exit: commit any leftovers for this thread.
91  if (!buf.empty())
92  _owner.emit_from_thread_local_buffer(buf, /*force_flush=*/false);
93 }
void emit_from_thread_local_buffer(std::string &b, bool force_flush)
Emit from the thread local buffer to our wrapped _sink.
ThreadBufferedSyncbuf & _owner
owning syncing stream buffer

Member Data Documentation

◆ _owner

ThreadBufferedSyncbuf& libMesh::ThreadBufferedSyncbuf::ThreadLocalBuffer::_owner
private

owning syncing stream buffer

Definition at line 72 of file thread_buffered_syncbuf.h.

Referenced by ~ThreadLocalBuffer().

◆ buf

std::string libMesh::ThreadBufferedSyncbuf::ThreadLocalBuffer::buf

per-thread buffer

Definition at line 68 of file thread_buffered_syncbuf.h.

Referenced by ~ThreadLocalBuffer().


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