AgsThreadPool

AgsThreadPool — thread pool

Functions

Properties

guint max-threads Read / Write
guint max-unused-threads Read / Write

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── AgsThreadPool

Implemented Interfaces

AgsThreadPool implements AgsConnectable.

Includes

#include <ags/thread/ags_thread_pool.h>

Description

The AgsThreadPool acts as preinstantiated threads store. This can achieve enormeous performance.

Functions

ags_thread_pool_pull ()

AgsThread *
ags_thread_pool_pull (AgsThreadPool *thread_pool);

Pull a previously instantiated AgsReturnableThread. Note this function may block until a new thread is available.

Parameters

thread_pool

the AgsThreadPool

 

Returns

a new AgsThread

Since: 1.0.0


ags_thread_pool_start ()

void
ags_thread_pool_start (AgsThreadPool *thread_pool);

Start the thread pool.

Parameters

thread_pool

the AgsThreadPool

 

Since: 1.0.0


ags_thread_pool_new ()

AgsThreadPool *
ags_thread_pool_new (AgsThread *parent);

Create a new AgsThreadPool.

Parameters

parent

the parent AgsThread of returnable threads

 

Returns

the new AgsThreadPool

Since: 1.0.0


AGS_IS_THREAD_POOL()

#define AGS_IS_THREAD_POOL(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_THREAD_POOL))

AGS_THREAD_POOL()

#define AGS_THREAD_POOL(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_THREAD_POOL, AgsThreadPool))

AGS_THREAD_POOL_CLASS()

#define AGS_THREAD_POOL_CLASS(class)        (G_TYPE_CHECK_CLASS_CAST(class, AGS_TYPE_THREAD_POOL, AgsThreadPoolClass))

AGS_THREAD_POOL_GET_CLASS()

#define AGS_THREAD_POOL_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS(obj, AGS_TYPE_THREAD_POOL, AgsThreadPoolClass))

ags_thread_pool_get_type ()

GType
ags_thread_pool_get_type ();

Types and Values

AGS_THREAD_POOL_RT_PRIORITY

#define AGS_THREAD_POOL_RT_PRIORITY (99)

enum AgsThreadPoolFlags

Enum values to control the behavior or indicate internal state of AgsThreadPool by enable/disable as sync_flags.

Members

AGS_THREAD_POOL_RUNNING

the thread pool is running

 

AGS_THREAD_POOL_RT_SETUP

realtime setup has been performed

 

AGS_TYPE_THREAD_POOL

#define AGS_TYPE_THREAD_POOL                (ags_thread_pool_get_type())

struct AgsThreadPool

struct AgsThreadPool;

struct AgsThreadPoolClass

struct AgsThreadPoolClass {
  GObjectClass object;

  void (*start)(AgsThreadPool *thread_pool);
};

Property Details

The “max-threads” property

  “max-threads”              guint

The maximum amount of threads available.

Flags: Read / Write

Allowed values: [1,65535]

Default value: 1024

Since: 1.0.0


The “max-unused-threads” property

  “max-unused-threads”       guint

The maximum amount of unused threads available.

Flags: Read / Write

Allowed values: [1,65535]

Default value: 24

Since: 1.0.0

Signal Details

The “start” signal

void
user_function (AgsThreadPool *thread_pool,
               gpointer       user_data)

The ::start() signal is invoked in order to started the pool.

Parameters

thread_pool

the AgsThreadPool

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.0.0