Flow 3.0.0
Flow project: Public API.
Classes | Namespaces | Functions
thread_lcl.hpp File Reference

Classes

class  flow::util::Thread_local_state_registry< Thread_local_state_t >
 Similar to Thread_local_ptr<T> (a perf-upgraded boost::thread_specific_ptr<T>) but allows iteration through all per-thread data (registry) under temp lock. More...
 
struct  flow::util::Thread_local_state_registry< Thread_local_state_t >::Metadata
 General info (as of this writing for logging only) about a given entry (thread/object) in State_per_thread_map. More...
 
class  flow::util::Poll_flag
 A single boolean flag, armed via arm_next_poll() (typically from another thread) and both checked and disarmed – cheaply enough for the hottest of paths – via poll_armed(). More...
 
class  flow::util::Polled_shared_state< Shared_state_t >
 Optional-use companion to Thread_local_state_registry that (together with Poll_flag) enables the Polled_shared_state pattern wherein from some arbitrary thread user causes the extant thread-locally-activated threads opportunistically collaborate on/using locked shared state, with the no-op fast-path being gated by a high-performance Poll_flag being disarmed. More...
 

Namespaces

namespace  flow
 Catch-all namespace for the Flow project: A collection of various production-quality modules written in modern C++17, originally by ygoldfel.
 
namespace  flow::util
 Flow module containing miscellaneous general-use facilities that don't fit into any other Flow module.
 

Functions

template<typename Thread_local_state_t >
std::ostream & flow::util::operator<< (std::ostream &os, const Thread_local_state_registry< Thread_local_state_t > &val)
 Serializes a Thread_local_state_registry to a standard output stream. More...