Monado OpenXR Runtime
u_worker.h File Reference

Worker and threading pool. More...

#include "xrt/xrt_defines.h"
Include dependency graph for u_worker.h:

Go to the source code of this file.

Data Structures

struct  u_worker_thread_pool
 A worker pool, can shared between multiple groups worker pool. More...
 
struct  u_worker_group
 A worker group where you submit tasks to. More...
 

Typedefs

typedef void(* u_worker_group_func_t) (void *)
 Function typedef for tasks. More...
 

Functions

struct u_worker_thread_poolu_worker_thread_pool_create (uint32_t starting_worker_count, uint32_t thread_count, const char *prefix)
 Creates a new thread pool to be used by a worker group. More...
 
void u_worker_thread_pool_destroy (struct u_worker_thread_pool *uwtp)
 Internal function, only called by reference. More...
 
static void u_worker_thread_pool_reference (struct u_worker_thread_pool **dst, struct u_worker_thread_pool *src)
 Standard Monado reference function. More...
 
struct u_worker_groupu_worker_group_create (struct u_worker_thread_pool *uwtp)
 Create a new worker group. More...
 
void u_worker_group_push (struct u_worker_group *uwg, u_worker_group_func_t f, void *data)
 Push a new task to worker group. More...
 
void u_worker_group_wait_all (struct u_worker_group *uwg)
 Wait for all pushed tasks to be completed, "donates" this thread to the shared thread pool. More...
 
void u_worker_group_destroy (struct u_worker_group *uwg)
 Destroy a worker pool. More...
 
static void u_worker_group_reference (struct u_worker_group **dst, struct u_worker_group *src)
 Standard Monado reference function. More...
 

Detailed Description

Worker and threading pool.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m