Blender V4.3
BLI_task_test.cc File Reference
#include "testing/testing.h"
#include <atomic>
#include <cstring>
#include "atomic_ops.h"
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.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.

Macros

#define ITEMS_NUM   10000
 

Typedefs

using TaskMemPool_Chunk
 

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 20 of file BLI_task_test.cc.

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

Typedef Documentation

◆ TaskMemPool_Chunk

Initial value:
ListBase *accumulate_items;
}
struct TaskMemPool_Chunk { ListBase *accumulate_items;} TaskMemPool_Chunk

Definition at line 148 of file BLI_task_test.cc.

Function Documentation

◆ task_mempool_iter_func()

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

Definition at line 74 of file BLI_task_test.cc.

References atomic_sub_and_fetch_uint32(), and count.

Referenced by TEST().

◆ task_mempool_iter_tls_free()

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

Definition at line 185 of file BLI_task_test.cc.

References MEM_freeN().

Referenced by TEST().

◆ task_mempool_iter_tls_func()

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

Definition at line 152 of file BLI_task_test.cc.

References BLI_addtail(), BLI_genericNodeN(), and data.

Referenced by TEST().

◆ task_mempool_iter_tls_reduce()

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

Definition at line 170 of file BLI_task_test.cc.

References BLI_movelisttolist().

Referenced by TEST().

◆ task_range_iter_func()

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

Definition at line 24 of file BLI_task_test.cc.

Referenced by TEST().

◆ task_range_iter_reduce_func()

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

Definition at line 32 of file BLI_task_test.cc.

Referenced by TEST().

◆ TEST() [1/4]

◆ TEST() [2/4]

◆ TEST() [3/4]

TEST ( task ,
ParallelInvoke  )

Definition at line 237 of file BLI_task_test.cc.

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

◆ TEST() [4/4]