## schroasync schroasync |

## Synopsis

                        SchroAsync;
    struct              SchroAsyncTask;
    void                (*SchroAsyncCompleteFunc)           (void *Param1);
    int                 (*SchroAsyncScheduleFunc)           (void *Param1,
                                                             SchroExecDomain exec_domain);
                        SchroThread;
    SchroAsync *        schro_async_new                     (int n_threads,
                                                             SchroAsyncScheduleFunc schedule,
                                                             SchroAsyncCompleteFunc complete,
                                                             void *closure);
    void                schro_async_free                    (SchroAsync *async);
    void                schro_async_lock                    (SchroAsync *async);
    void                schro_async_unlock                  (SchroAsync *async);
    void                schro_async_signal_scheduler        (SchroAsync *async);
    int                 schro_async_wait_locked             (SchroAsync *async);
    SchroExecDomain     schro_async_get_exec_domain         (void);

## Description

## Details

### SchroAsync

    typedef struct _SchroAsync SchroAsync;

### struct SchroAsyncTask

    struct SchroAsyncTask {
      SchroAsyncTaskFunc task_func;
      void *priv;
    };

### SchroAsyncCompleteFunc ()

    void                (*SchroAsyncCompleteFunc)           (void *Param1);

### SchroAsyncScheduleFunc ()

    int                 (*SchroAsyncScheduleFunc)           (void *Param1,
                                                             SchroExecDomain exec_domain);

### SchroThread

    typedef struct _SchroThread SchroThread;

### schro_async_new ()

    SchroAsync *        schro_async_new                     (int n_threads,
                                                             SchroAsyncScheduleFunc schedule,
                                                             SchroAsyncCompleteFunc complete,
                                                             void *closure);

### schro_async_free ()

    void                schro_async_free                    (SchroAsync *async);

### schro_async_lock ()

    void                schro_async_lock                    (SchroAsync *async);

### schro_async_unlock ()

    void                schro_async_unlock                  (SchroAsync *async);

### schro_async_signal_scheduler ()

    void                schro_async_signal_scheduler        (SchroAsync *async);

### schro_async_wait_locked ()

    int                 schro_async_wait_locked             (SchroAsync *async);

### schro_async_get_exec_domain ()

    SchroExecDomain     schro_async_get_exec_domain         (void);