Dex.ThreadPool.submit

### Method

# Dex ThreadPoolsubmit

unstable since: 1.2

#### Declaration [src]

    DexFuture*
    dex_thread_pool_submit (
      DexThreadPool* pool,
      const char* thread_name,
      DexThreadFunc thread_func,
      gpointer user_data,
      GDestroyNotify user_data_destroy
    )

#### Description [src]

Queues blocking work to run on one of the pool’s reusable threads.

The provided `thread_name` is applied to the returned future using `dex_future_set_static_name()` so that tracing and debugging tools can identify the work item. It does not rename the underlying OS worker thread.

Available since: 1.2

#### Parameters

`thread_name`

  Type: `const char*`

  The name to use for debugging the returned future.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`thread_func`

  Type: `DexThreadFunc`

  The function to run on a pooled thread.

`user_data`

  Type: `gpointer`

  Closure data for `thread_func`.

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

`user_data_destroy`

  Type: `GDestroyNotify`

  Destroy notify for `user_data`.

#### Return value

Type: `DexFuture`

A future that resolves when the work completes.

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