## schroasync schroasync |

## Synopsis

                        SchroAsync;
                        SchroAsyncTask;
    void                (*SchroAsyncCompleteFunc)           (void *);
    int                 (*SchroAsyncScheduleFunc)           (void *,
                                                             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;

### SchroAsyncTask

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

### SchroAsyncCompleteFunc ()

    void                (*SchroAsyncCompleteFunc)           (void *);

`Param1` : |

### SchroAsyncScheduleFunc ()

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

`Param1` : |
`exec_domain` : |
Returns : |

### SchroThread

    typedef struct _SchroThread SchroThread;

### schro_async_new ()

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

`n_threads` : |
`schedule` : |
`complete` : |
`closure` : |
Returns : |

### schro_async_free ()

    void                schro_async_free                    (SchroAsync *async);

`async` : |

### schro_async_lock ()

    void                schro_async_lock                    (SchroAsync *async);

`async` : |

### schro_async_unlock ()

    void                schro_async_unlock                  (SchroAsync *async);

`async` : |

### schro_async_signal_scheduler ()

    void                schro_async_signal_scheduler        (SchroAsync *async);

`async` : |

### schro_async_wait_locked ()

    int                 schro_async_wait_locked             (SchroAsync *async);

`async` : |
Returns : |

### schro_async_get_exec_domain ()

    SchroExecDomain     schro_async_get_exec_domain         (void);

Returns : |