File ThreadSafeQueue.h
File List > engine > include > ThreadSafeQueue.h
Go to the documentation of this file
#ifndef THREADSAFE_QUEUE_H
#define THREADSAFE_QUEUE_H
#include "IntTypes.h"
#include "Thread.h"
#include <stdbool.h>
typedef void(*OnTSQueueWrapAroundFn)(void* pItemToBeLost);
struct ThreadSafeQueue
{
u8* data;
u32 itemSize;
u32 queueSize;
u32 queueCurrentLength;
u8* queueHead;
u8* queueTail;
CrossPlatformMutex mutex;
OnTSQueueWrapAroundFn onWrap;
};
void TSQ_Init(struct ThreadSafeQueue* pQueue, u32 itemSize, u32 queueSizeItems, OnTSQueueWrapAroundFn wrapAroundCallback);
void TSQ_Enqueue(struct ThreadSafeQueue* pQueue, const void* pIn);
bool TSQ_Dequeue(struct ThreadSafeQueue* pQueue, void* pOut);
#endif