MLT  7.24.0
Data Structures | Macros | Enumerations | Functions | Variables
mlt_slices.c File Reference

sliced threading processing helper More...

#include "mlt_slices.h"
#include "mlt_factory.h"
#include "mlt_log.h"
#include "mlt_properties.h"
#include <pthread.h>
#include <sched.h>
#include <stdlib.h>
#include <unistd.h>

Data Structures

struct  mlt_slices_runtime_s
 
struct  mlt_slices_s
 

Macros

#define ENV_SLICES   "MLT_SLICES_COUNT"
 
#define MAX_SLICES   32
 

Enumerations

enum  mlt_schedule_policy { mlt_policy_normal , mlt_policy_rr , mlt_policy_fifo , mlt_policy_nb }
 

Functions

void mlt_slices_run_fifo (int jobs, mlt_slices_proc proc, void *cookie)
 
void mlt_slices_run_normal (int jobs, mlt_slices_proc proc, void *cookie)
 
void mlt_slices_run_rr (int jobs, mlt_slices_proc proc, void *cookie)
 
static void * mlt_slices_worker (void *p)
 

Variables

static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER
 
static mlt_slices globals [mlt_policy_nb] = {NULL, NULL, NULL}
 

Detailed Description

sliced threading processing helper

See also
mlt_slices_s

Copyright (C) 2016-2022 Meltytech, LLC

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Macro Definition Documentation

◆ ENV_SLICES

#define ENV_SLICES   "MLT_SLICES_COUNT"

◆ MAX_SLICES

#define MAX_SLICES   32

Enumeration Type Documentation

◆ mlt_schedule_policy

Enumerator
mlt_policy_normal 
mlt_policy_rr 
mlt_policy_fifo 
mlt_policy_nb 

Function Documentation

◆ mlt_slices_run_fifo()

void mlt_slices_run_fifo ( int  jobs,
mlt_slices_proc  proc,
void *  cookie 
)

◆ mlt_slices_run_normal()

void mlt_slices_run_normal ( int  jobs,
mlt_slices_proc  proc,
void *  cookie 
)

◆ mlt_slices_run_rr()

void mlt_slices_run_rr ( int  jobs,
mlt_slices_proc  proc,
void *  cookie 
)

◆ mlt_slices_worker()

static void* mlt_slices_worker ( void *  p)
static

Variable Documentation

◆ g_lock

pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER
static

◆ globals

mlt_slices globals[mlt_policy_nb] = {NULL, NULL, NULL}
static