Blender  V2.93
Classes | Macros | Functions
gsqueue.c File Reference

A generic structure queue (a queue for fixed length generally small) structures. More...

#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_gsqueue.h"
#include "BLI_strict_flags.h"
#include "BLI_utildefines.h"

Go to the source code of this file.

Classes

struct  QueueChunk
 
struct  _GSQueue
 

Macros

#define CHUNK_SIZE_DEFAULT   (1 << 16)
 
#define CHUNK_ELEM_MIN   32
 

Functions

static void * queue_get_first_elem (GSQueue *queue)
 
static void * queue_get_last_elem (GSQueue *queue)
 
static size_t queue_chunk_elem_max_calc (const size_t elem_size, size_t chunk_size)
 
GSQueueBLI_gsqueue_new (const size_t elem_size)
 
static void queue_free_chunk (struct QueueChunk *data)
 
void BLI_gsqueue_free (GSQueue *queue)
 
void BLI_gsqueue_push (GSQueue *queue, const void *item)
 
void BLI_gsqueue_pop (GSQueue *queue, void *r_item)
 
size_t BLI_gsqueue_len (const GSQueue *queue)
 
bool BLI_gsqueue_is_empty (const GSQueue *queue)
 

Detailed Description

A generic structure queue (a queue for fixed length generally small) structures.

Definition in file gsqueue.c.

Macro Definition Documentation

◆ CHUNK_ELEM_MIN

#define CHUNK_ELEM_MIN   32

Definition at line 35 of file gsqueue.c.

◆ CHUNK_SIZE_DEFAULT

#define CHUNK_SIZE_DEFAULT   (1 << 16)

Definition at line 33 of file gsqueue.c.

Function Documentation

◆ BLI_gsqueue_free()

void BLI_gsqueue_free ( GSQueue queue)

◆ BLI_gsqueue_is_empty()

bool BLI_gsqueue_is_empty ( const GSQueue queue)

◆ BLI_gsqueue_len()

size_t BLI_gsqueue_len ( const GSQueue queue)

Definition at line 185 of file gsqueue.c.

References blender::compositor::queue.

Referenced by BLI_thread_queue_len().

◆ BLI_gsqueue_new()

GSQueue* BLI_gsqueue_new ( const size_t  elem_size)

◆ BLI_gsqueue_pop()

void BLI_gsqueue_pop ( GSQueue queue,
void *  r_item 
)

◆ BLI_gsqueue_push()

void BLI_gsqueue_push ( GSQueue queue,
const void *  item 
)

◆ queue_chunk_elem_max_calc()

static size_t queue_chunk_elem_max_calc ( const size_t  elem_size,
size_t  chunk_size 
)
static
Returns
number of elements per chunk, optimized for slop-space.

Definition at line 66 of file gsqueue.c.

References BLI_assert, CHUNK_ELEM_MIN, MEM_SIZE_OVERHEAD, and UNLIKELY.

Referenced by BLI_gsqueue_new().

◆ queue_free_chunk()

static void queue_free_chunk ( struct QueueChunk data)
static

Definition at line 95 of file gsqueue.c.

References data, and MEM_freeN.

Referenced by BLI_gsqueue_free().

◆ queue_get_first_elem()

static void* queue_get_first_elem ( GSQueue queue)
static

Definition at line 53 of file gsqueue.c.

References blender::compositor::queue.

Referenced by BLI_gsqueue_pop().

◆ queue_get_last_elem()

static void* queue_get_last_elem ( GSQueue queue)
static

Definition at line 58 of file gsqueue.c.

References blender::compositor::queue.

Referenced by BLI_gsqueue_push().