File queue.h

Defines

DEFAULT_QUEUE_TIMEOUT_MS
DEFAULT_QUEUE_SIZE
namespace faabric
namespace util
template<typename T>
class FixedCapacityQueue

Public Functions

inline FixedCapacityQueue(int capacity)
inline FixedCapacityQueue()
inline void enqueue(T value, long timeoutMs = DEFAULT_QUEUE_TIMEOUT_MS)
inline void dequeueIfPresent(T *res)
inline T dequeue(long timeoutMs = DEFAULT_QUEUE_TIMEOUT_MS)
inline T *peek(long timeoutMs = DEFAULT_QUEUE_TIMEOUT_MS)
inline void drain(long timeoutMs = DEFAULT_QUEUE_TIMEOUT_MS)
inline long size()
inline void reset()

Private Members

moodycamel::BlockingReaderWriterCircularBuffer<T> mq
template<typename T>
class Queue

Public Functions

inline void enqueue(T value)
inline void dequeueIfPresent(T *res)
inline T dequeue(long timeoutMs = DEFAULT_QUEUE_TIMEOUT_MS)
inline T *peek(long timeoutMs = 0)
inline void waitToDrain(long timeoutMs)
inline void drain()
inline long size()
inline void reset()

Private Members

std::queue<T> mq
std::condition_variable enqueueNotifier
std::condition_variable emptyNotifier
std::mutex mx
class QueueTimeoutException : public faabric::util::FaabricException

Public Functions

inline explicit QueueTimeoutException(std::string message)
template<typename T>
class SpinLockQueue

Public Functions

inline void enqueue(T &value)
inline T dequeue()
inline long size()
inline void drain()
inline void reset()

Private Members

atomic_queue::AtomicQueue2<T, 1024, true, true, false, true> mq
class TokenPool

Public Functions

explicit TokenPool(int nTokens)
int getToken()

Blocking call to get an available token

void releaseToken(int token)
void reset()
int size()
int taken()
int free()

Private Members

int _size
Queue<int> queue