FFmpeg
Loading...
Searching...
No Matches
executor.c File Reference
#include "config.h"
#include <stdbool.h>
#include "mem.h"
#include "thread.h"
#include "executor.h"

Go to the source code of this file.

Data Structures

struct  ThreadInfo
 HAVE_THREADS. More...
 
struct  AVExecutor
 

Macros

#define ExecutorThread   char
 
#define executor_thread_create(t, a, s, ar)
 
#define executor_thread_join(t, r)
 

Functions

static AVTaskremove_task (AVTask **prev, AVTask *t)
 
static void add_task (AVTask **prev, AVTask *t)
 
static int run_one_task (AVExecutor *e, void *lc)
 
static void executor_free (AVExecutor *e, const int has_lock, const int has_cond)
 
AVExecutorav_executor_alloc (const AVTaskCallbacks *cb, int thread_count)
 Alloc executor.
 
void av_executor_free (AVExecutor **executor)
 Free executor.
 
void av_executor_execute (AVExecutor *e, AVTask *t)
 Add task to executor.
 

Macro Definition Documentation

◆ ExecutorThread

#define ExecutorThread   char

Definition at line 32 of file executor.c.

◆ executor_thread_create

#define executor_thread_create ( t,
a,
s,
ar )
Value:
0

Definition at line 34 of file executor.c.

◆ executor_thread_join

#define executor_thread_join ( t,
r )
Value:
do {} while(0)

Definition at line 35 of file executor.c.

Function Documentation

◆ remove_task()

static AVTask * remove_task ( AVTask ** prev,
AVTask * t )
static

Definition at line 66 of file executor.c.

◆ add_task()

static void add_task ( AVTask ** prev,
AVTask * t )
static

Definition at line 73 of file executor.c.

◆ run_one_task()

static int run_one_task ( AVExecutor * e,
void * lc )
static

Definition at line 79 of file executor.c.

◆ executor_free()

static void executor_free ( AVExecutor * e,
const int has_lock,
const int has_cond )
static

Definition at line 119 of file executor.c.

◆ av_executor_alloc()

AVExecutor * av_executor_alloc ( const AVTaskCallbacks * callbacks,
int thread_count )

Alloc executor.

Parameters
callbackscallback structure for executor
thread_countworker thread number, 0 for run on caller's thread directly
Returns
return the executor

Definition at line 142 of file executor.c.

◆ av_executor_free()

void av_executor_free ( AVExecutor ** e)

Free executor.

Parameters
epointer to executor

Definition at line 184 of file executor.c.

◆ av_executor_execute()

void av_executor_execute ( AVExecutor * e,
AVTask * t )

Add task to executor.

Parameters
epointer to executor
tpointer to task. If NULL, it will wakeup one work thread

Definition at line 195 of file executor.c.