# Trait core::task::UnsafeTask[−][src]

    pub unsafe trait UnsafeTask: Send + 'static {
        fn into_raw(self) -> *mut ();
        unsafe fn poll(task: *mut (), cx: &mut Context) -> Poll<()>;
        unsafe fn drop(task: *mut ());
    }

🔬 This is a nightly-only experimental API. (`futures_api` #50547)

futures in libcore are unstable

A custom implementation of a task trait object for `TaskObj`, providing a hand-rolled vtable.

This custom representation is typically used only in `no_std` contexts, where the default `Box`-based implementation is not available.

The implementor must guarantee that it is safe to call `poll` repeatedly (in a non-concurrent fashion) with the result of `into_raw` until `drop` is called.

## Required Methods

### `fn into_raw(self) -> *mut ()`

🔬 This is a nightly-only experimental API. (`futures_api` #50547)

futures in libcore are unstable

Convert a owned instance into a (conceptually owned) void pointer.

### `unsafe fn poll(task: *mut (), cx: &mut Context) -> Poll<()>`

🔬 This is a nightly-only experimental API. (`futures_api` #50547)

futures in libcore are unstable

Poll the task represented by the given void pointer.

# Safety

The trait implementor must guarantee that it is safe to repeatedly call `poll` with the result of `into_raw` until `drop` is called; such calls are not, however, allowed to race with each other or with calls to `drop`.

### `unsafe fn drop(task: *mut ())`

🔬 This is a nightly-only experimental API. (`futures_api` #50547)

futures in libcore are unstable

Drops the task represented by the given void pointer.

# Safety

The trait implementor must guarantee that it is safe to call this function once per `into_raw` invocation; that call cannot race with other calls to `drop` or `poll`.

## Implementors

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)