## AgsConcurrencyProvider

AgsConcurrencyProvider — concurrency provider interface

## Stability Level

Stable, unless otherwise indicated

## Functions

AgsThread * | ags_concurrency_provider_get_main_loop ()
void | ags_concurrency_provider_set_main_loop ()
AgsTaskLauncher * | ags_concurrency_provider_get_task_launcher ()
void | ags_concurrency_provider_set_task_launcher ()
AgsThreadPool * | ags_concurrency_provider_get_thread_pool ()
void | ags_concurrency_provider_set_thread_pool ()
GList * | ags_concurrency_provider_get_worker ()
void | ags_concurrency_provider_set_worker ()

## Object Hierarchy

        GInterface
        ╰── AgsConcurrencyProvider

## Includes

    #include <ags/thread/ags_concurrency_provider.h>

## Description

The AgsConcurrencyProvider gives you unique access to threads.

## Functions

### ags_concurrency_provider_get_main_loop ()

    AgsThread *
    ags_concurrency_provider_get_main_loop
                                   (AgsConcurrencyProvider *concurrency_provider);

Get main loop of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |

#### Returns

the AgsThread implementing AgsMainLoop.

[transfer full]

Since: 3.0.0

### ags_concurrency_provider_set_main_loop ()

    void
    ags_concurrency_provider_set_main_loop
                                   (AgsConcurrencyProvider *concurrency_provider,
                                    AgsThread *main_loop);

Set main loop of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |
main_loop | the AgsThread implementing AgsMainLoop |

Since: 3.0.0

### ags_concurrency_provider_get_task_launcher ()

    AgsTaskLauncher *
    ags_concurrency_provider_get_task_launcher
                                   (AgsConcurrencyProvider *concurrency_provider);

Get task launcher of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |

#### Returns

the AgsTaskLauncher.

[transfer full]

Since: 3.0.0

### ags_concurrency_provider_set_task_launcher ()

    void
    ags_concurrency_provider_set_task_launcher
                                   (AgsConcurrencyProvider *concurrency_provider,
                                    AgsTaskLauncher *task_launcher);

Set task launcher of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |
task_launcher | the AgsTaskLauncher |

Since: 3.0.0

### ags_concurrency_provider_get_thread_pool ()

    AgsThreadPool *
    ags_concurrency_provider_get_thread_pool
                                   (AgsConcurrencyProvider *concurrency_provider);

Get thread pool of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |

#### Returns

the AgsThreadPool.

[transfer full]

Since: 3.0.0

### ags_concurrency_provider_set_thread_pool ()

    void
    ags_concurrency_provider_set_thread_pool
                                   (AgsConcurrencyProvider *concurrency_provider,
                                    AgsThreadPool *thread_pool);

Set thread pool of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |
thread_pool | the AgsThreadPool |

Since: 3.0.0

### ags_concurrency_provider_get_worker ()

    GList *
    ags_concurrency_provider_get_worker (AgsConcurrencyProvider *concurrency_provider);

Get workers of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |

#### Returns

the GList containing workers.

[element-type Ags.WorkerThread][transfer full]

Since: 3.0.0

### ags_concurrency_provider_set_worker ()

    void
    ags_concurrency_provider_set_worker (AgsConcurrencyProvider *concurrency_provider,
                                         GList *worker);

Set workers of application context.

#### Parameters

concurrency_provider | the AgsConcurrencyProvider |
worker | the GList containing workers. | [element-type Ags.WorkerThread]

Since: 3.0.0