Skip to content

File platform.hh

FileList > ase > platform.hh

  • #include <ase/defs.hh>
  • #include <condition_variable>
  • #include <thread>
  • #include <list>

Namespaces

Type Name
namespace Ase
The Anklang C++ API namespace.
namespace AnsiColors
The AnsiColors namespace contains utility functions for colored terminal output.

Classes

Type Name
class AsyncBlockingQueue <class Value>
This is a thread-safe asyncronous queue which blocks in pop() until data is provided through push().
class ScopedSemaphore
class Stopwatch
class TaskRegistry
The task registry keeps track of runtime threads for profiling and statistical purposes.
struct TaskStatus
Acquire information about a task (process or thread) at runtime.

Macros

Type Name
define ASE_CFENCE \_\_asm\_\_ \_\_volatile\_\_ ("" ::: "memory")
Compiler Fence, prevent compiler from reordering non-volatile loads/stores, see also std::atomic_signal_fence().
define ASE_LFENCE \_\_sync\_synchronize()
define ASE_MFENCE \_\_sync\_synchronize()
Memory Fence - prevent processor (and compiler) from reordering loads/stores (read/write barrier), see also std::atomic_thread_fence().
define ASE_SFENCE \_\_sync\_synchronize()
Store Fence - prevent processor (and compiler) from reordering stores (write barrier).

Macro Definition Documentation

define ASE_CFENCE

Compiler Fence, prevent compiler from reordering non-volatile loads/stores, see also std::atomic_signal_fence().

#define ASE_CFENCE `__asm__ __volatile__ ("" ::: "memory")`

define ASE_LFENCE

#define ASE_LFENCE `__sync_synchronize()`

Load Fence - prevent processor (and compiler) from reordering loads (read barrier).


define ASE_MFENCE

Memory Fence - prevent processor (and compiler) from reordering loads/stores (read/write barrier), see also std::atomic_thread_fence().

#define ASE_MFENCE `__sync_synchronize()`

define ASE_SFENCE

Store Fence - prevent processor (and compiler) from reordering stores (write barrier).

#define ASE_SFENCE `__sync_synchronize()`


The documentation for this class was generated from the following file /__w/anklang/anklang/ase/platform.hh