BluFedora Job System v1.0.0
This is a C++ job system library for use in game engines.
job_queue.hpp File Reference

Concurrent Queue Implmementations for different situations. More...

#include "job_api.hpp"
#include "job_assert.hpp"
#include <algorithm>
#include <atomic>
#include <cstddef>
#include <iterator>
#include <mutex>
#include <new>
#include <utility>

Go to the source code of this file.

Classes

class  Job::LockedQueue< T >
 
class  Job::SPSCQueue< T >
 
class  Job::SPMCDeque< T >
 
class  Job::MPMCQueue
 
struct  Job::MPMCQueue::IndexRange
 

Namespaces

namespace  Job
 

Macros

#define Job_CacheAlign   alignas(k_FalseSharingPadSize)
 

Enumerations

enum class  Job::SPMCDequeStatus { Job::SUCCESS , Job::FAILED_RACE , Job::FAILED_SIZE }
 

Variables

static constexpr std::size_t Job::k_FalseSharingPadSize = std::hardware_destructive_interference_size
 

Detailed Description

Concurrent Queue Implmementations for different situations.

Author
Shareef Abdoul-Raheem (https://blufedora.github.io/)

Some Interesting Links:

Definition in file job_queue.hpp.


Class Documentation

◆ Job::MPMCQueue::IndexRange

struct Job::MPMCQueue::IndexRange

Definition at line 386 of file job_queue.hpp.

Class Members
size_type start
size_type end

Macro Definition Documentation

◆ Job_CacheAlign

#define Job_CacheAlign   alignas(k_FalseSharingPadSize)

Definition at line 32 of file job_queue.hpp.