Blender V5.0
BLI_task_test.cc File Reference
#include "testing/testing.h"
#include <atomic>
#include <cstring>
#include "atomic_ops.h"
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_mempool.h"
#include "BLI_task.h"
#include "BLI_task.hh"

Go to the source code of this file.

Classes

struct  TaskMemPool_Chunk

Macros

#define ITEMS_NUM   10000

Functions

static void task_range_iter_func (void *userdata, int index, const TaskParallelTLS *__restrict tls)
static void task_range_iter_reduce_func (const void *__restrict, void *__restrict join_v, void *__restrict userdata_chunk)
 TEST (task, RangeIter)
static void task_mempool_iter_func (void *userdata, MempoolIterData *item, const TaskParallelTLS *__restrict)
 TEST (task, MempoolIter)
static void task_mempool_iter_tls_func (void *, MempoolIterData *item, const TaskParallelTLS *__restrict tls)
static void task_mempool_iter_tls_reduce (const void *__restrict, void *__restrict chunk_join, void *__restrict chunk)
static void task_mempool_iter_tls_free (const void *, void *__restrict userdata_chunk)
 TEST (task, MempoolIterTLS)
 TEST (task, ParallelInvoke)

Macro Definition Documentation

◆ ITEMS_NUM

#define ITEMS_NUM   10000

Definition at line 18 of file BLI_task_test.cc.

Referenced by TEST(), TEST(), and TEST().

Function Documentation

◆ task_mempool_iter_func()

void task_mempool_iter_func ( void * userdata,
MempoolIterData * item,
const TaskParallelTLS * __restrict )
static

Definition at line 72 of file BLI_task_test.cc.

References atomic_sub_and_fetch_uint32(), count, and data.

Referenced by TEST().

◆ task_mempool_iter_tls_free()

void task_mempool_iter_tls_free ( const void * ,
void *__restrict userdata_chunk )
static

Definition at line 183 of file BLI_task_test.cc.

References TaskMemPool_Chunk::accumulate_items, and MEM_freeN().

Referenced by TEST().

◆ task_mempool_iter_tls_func()

void task_mempool_iter_tls_func ( void * ,
MempoolIterData * item,
const TaskParallelTLS *__restrict tls )
static

Definition at line 150 of file BLI_task_test.cc.

References TaskMemPool_Chunk::accumulate_items, BLI_addtail(), BLI_genericNodeN(), data, and MEM_callocN().

Referenced by TEST().

◆ task_mempool_iter_tls_reduce()

void task_mempool_iter_tls_reduce ( const void * __restrict,
void *__restrict chunk_join,
void *__restrict chunk )
static

Definition at line 168 of file BLI_task_test.cc.

References TaskMemPool_Chunk::accumulate_items, BLI_movelisttolist(), and MEM_callocN().

Referenced by TEST().

◆ task_range_iter_func()

void task_range_iter_func ( void * userdata,
int index,
const TaskParallelTLS *__restrict tls )
static

Definition at line 22 of file BLI_task_test.cc.

References data.

Referenced by TEST().

◆ task_range_iter_reduce_func()

void task_range_iter_reduce_func ( const void * __restrict,
void *__restrict join_v,
void *__restrict userdata_chunk )
static

Definition at line 30 of file BLI_task_test.cc.

Referenced by TEST().

◆ TEST() [1/4]

◆ TEST() [2/4]

◆ TEST() [3/4]

TEST ( task ,
ParallelInvoke  )

Definition at line 235 of file BLI_task_test.cc.

References EXPECT_EQ(), and blender::threading::parallel_invoke().

◆ TEST() [4/4]