### Method

# Dex Scheduler spawn

#### Declaration [src]

    DexFuture*
    dex_scheduler_spawn (
      DexScheduler* scheduler,
      gsize stack_size,
      DexFiberFunc func,
      gpointer func_data,
      GDestroyNotify func_data_destroy
    )

#### Description [src]

Request `scheduler` to spawn a `DexFiber`.

The fiber will have it’s own stack and cooperatively schedules among other fibers sharing the schaeduler.

If `stack_size` is 0, it will set to a sensible default. Otherwise, it is rounded up to the nearest page size.

#### Parameters

`stack_size`

  Type: `gsize`

  Stack size in bytes or 0

`func`

  Type: `DexFiberFunc`

  A `DexFiberFunc`.

  The argument can be `NULL`.

`func_data`

  Type: `gpointer`

  Closure data for `func`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`func_data_destroy`

  Type: `GDestroyNotify`

  Closure notify for `func_data`.

#### Return value

Type: `DexFuture`

A `DexFuture` that will resolve or reject when `func` completes (or it’s resulting `DexFuture` completes).

The caller of the method takes ownership of the data, and is responsible for freeing it.