# Struct ocl_core::types::abs::Kernel [−] [src]

    #[repr(C)]
    pub struct Kernel(_);

cl_kernel

### Thread Safety

Currently not thread safe: does not implement `Send` or `Sync`. It's probably possible to implement one or both with some work but it's potentially problematic on certain (all?) platforms due to issues while setting arguments. If you need to transfer a kernel you're better off creating another one in the other thread or using some other mechanism such as channels to manipulate kernels in other threads. This issue will be revisited in the future (please provide input by filing an issue if you have any thoughts on the matter).

[UPDATE]: Enabling `Send` for a while to test.

## Methods

### `impl Kernel`
[src]

#### `pub unsafe fn from_raw_create_ptr(ptr: cl_kernel) -> Kernel`
[src]

Only call this when passing the original newly created pointer directly from `clCreate...`. Do not use this to clone or copy.

#### `pub unsafe fn from_raw_copied_ptr(ptr: cl_kernel) -> Kernel`
[src]

Only call this when passing a copied pointer such as from an `clGet*****Info` function.

#### `pub fn as_ptr(&self) -> cl_kernel`
[src]

Returns a pointer, do not store it.

#### `pub fn program(&self) -> OclCoreResult<Program>`
[src]

Returns the program associated with this kernel.

#### `pub fn devices(&self) -> OclCoreResult<Vec<DeviceId>>`
[src]

## Trait Implementations

### `impl Debug for Kernel`
[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`
[src]

Formats the value using the given formatter. Read more

### `impl Clone for Kernel`
[src]

#### `fn clone(&self) -> Kernel`
[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`
1.0.0
[src]

Performs copy-assignment from `source`. Read more

### `impl Drop for Kernel`
[src]

#### `fn drop(&mut self)`
[src]

Executes the destructor for this type. Read more

### `impl ClVersions for Kernel`
[src]

#### `fn device_versions(&self) -> OclCoreResult<Vec<OpenclVersion>>`
[src]

#### `fn platform_version(&self) -> OclCoreResult<OpenclVersion>`
[src]

#### `fn verify_device_versions(
&self,
required_version: [u16; 2]
) -> OclCoreResult<()>`
[src]

#### `fn verify_platform_version(
&self,
required_version: [u16; 2]
) -> OclCoreResult<()>`
[src]

### `impl Send for Kernel`
[src]

# 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`)