BitMagic-C++
Public Types | Public Member Functions | Data Fields
bm::task_description Struct Reference

Descriptor for a task as a callback function, arguments, result. More...

#include <bmtask.h>

Public Types

enum  task_flags { no_flag = 0 , barrier_ok = 1u , barrier_any = (1u << 1) , barrier_ok_delayed = (1u << 2) }
 

Public Member Functions

 task_description () BMNOEXCEPT
 
 task_description (const task_description &td) BMNOEXCEPT
  More...
 
 task_description (task_func_type f, void *argptr=0) BMNOEXCEPT
  More...
 
void init (task_func_type f, void *argptr, void *c0, void *c1, bm::id64_t p0) BMNOEXCEPT
  More...
 

Data Fields

task_func_type func
 pthread-like function callback More...
 
void * argp
 arg pointer More...
 
void * ret
 ret pointer More...
 
void * ctx0
 reserved More...
 
void * ctx1
 reserved More...
 
bm::id64_t param0
 reserved More...
 
union {
   int   i32
 
   unsigned   u32
 
   unsigned long long   u64
 
   float   fp32
 
   double   fp64
 
   void *   void_ptr
 
payload0
 Union to add extra flexible payload to tasks. More...
 
union {
   int   i32
 
   unsigned   u32
 
   unsigned long long   u64
 
   float   fp32
 
   double   fp64
 
   void *   void_ptr
 
payload1
  More...
 
bm::id64_t flags
 task flags to designate barriers More...
 
unsigned err_code
 error code More...
 
std::atomic_uint done
 0 - pending More...
 

Detailed Description

Descriptor for a task as a callback function, arguments, result.

Structure contains pointers but being a descriptor it does not own their scope or nature (how it is allocated).

Definition at line 56 of file bmtask.h.

Member Enumeration Documentation

◆ task_flags

Enumerator
no_flag 

no flag specified

barrier_ok 

barrier waits all prev.tasks done without error

barrier_any 

barrier waits all prev tasks done (success or not)

barrier_ok_delayed 

Definition at line 58 of file bmtask.h.

Field Documentation

◆ argp

void* bm::task_description::argp

◆ ctx0

void* bm::task_description::ctx0

◆ ctx1

void* bm::task_description::ctx1

◆ done

std::atomic_uint bm::task_description::done

◆ err_code

unsigned bm::task_description::err_code

error code

Definition at line 86 of file bmtask.h.

Referenced by init(), and task_description().

◆ flags

bm::id64_t bm::task_description::flags

task flags to designate barriers

Definition at line 85 of file bmtask.h.

Referenced by bm::sv_serialization_plan_builder< SV >::build_plan(), init(), bm::thread_pool_executor< TPool >::run(), and task_description().

◆ func

task_func_type bm::task_description::func

◆ param0

bm::id64_t bm::task_description::param0

◆ 

union { ... } bm::task_description::payload0

◆ 

union { ... } bm::task_description::payload1

◆ ret

void* bm::task_description::ret

◆ u32

unsigned bm::task_description::u32

Definition at line 78 of file bmtask.h.

Referenced by bm::sv_serialization_plan_builder< SV >::build_plan().

◆ u64

unsigned long long bm::task_description::u64

◆ void_ptr

void* bm::task_description::void_ptr

The documentation for this struct was generated from the following file: