dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::shared::lockfree::list< entry_t > Class Template Reference

entries a real time walk visits without a lock, in user mode and the kernel alike More...

#include <dx_shared_lockfree_list.h>

Public Member Functions

template<typename f_t>
void each (f_t &&f)
 the walk: every entry in, each visited once
 list ()=default
 list (const list &)=delete
void pop (entry_t &entry)
 a writer takes an entry out: it is the writer's again on return
bool push (entry_t &entry)
 a writer puts an entry in; false where the memory for a larger table is not there
 ~list ()

Detailed Description

template<typename entry_t>
class dx::shared::lockfree::list< entry_t >

entries a real time walk visits without a lock, in user mode and the kernel alike

A walk never waits: it counts itself in and out. The writers are serialized by the list's owner and never walk: an entry goes in behind dx::fence::release(), a full table is replaced by one twice its size, and an entry taken out, or an outgrown table, is the writer's again once no walk is inside - the writer waits for that, never longer than a walk. The entries are not owned.

Constructor & Destructor Documentation

◆ list() [1/2]

template<typename entry_t>
dx::shared::lockfree::list< entry_t >::list ( )
default
Here is the caller graph for this function:

◆ list() [2/2]

template<typename entry_t>
dx::shared::lockfree::list< entry_t >::list ( const list< entry_t > & )
delete
Here is the call graph for this function:

◆ ~list()

template<typename entry_t>
dx::shared::lockfree::list< entry_t >::~list ( )
inline

Member Function Documentation

◆ each()

template<typename entry_t>
template<typename f_t>
void dx::shared::lockfree::list< entry_t >::each ( f_t && f)
inline

the walk: every entry in, each visited once

◆ pop()

template<typename entry_t>
void dx::shared::lockfree::list< entry_t >::pop ( entry_t & entry)
inline

a writer takes an entry out: it is the writer's again on return

◆ push()

template<typename entry_t>
bool dx::shared::lockfree::list< entry_t >::push ( entry_t & entry)
inline

a writer puts an entry in; false where the memory for a larger table is not there

Here is the call graph for this function:

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

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.