Struct ocl::async::OrderLock[][src]

pub struct OrderLock<V> { /* fields omitted */ }

A lock with conserved global order which interoperates with OpenCL events and Rust futures to provide exclusive access to data.

Calling ::read or ::write returns a future which will resolve into a OrderGuard.

Platform Compatibility

Some CPU device/platform combinations have synchronization problems when accessing an OrderLock from multiple threads. Known platforms with problems are 2nd and 4th gen Intel Core processors (Sandy Bridge and Haswell) with Intel OpenCL CPU drivers. Others may be likewise affected. Run the device_check.rs example to determine if your device/platform is affected. AMD platform drivers are known to work properly on the aforementioned CPUs so use those instead if possible.

Methods

impl<V> OrderLock<V>
[src]

Creates and returns a new OrderLock.

Returns a new FutureGuard which will resolve into a a OrderGuard.

Returns a new FutureGuard which will resolve into a a OrderGuard.

Returns a reference to the inner value.

Returns a mutable reference to the inner value.

Trait Implementations

impl<V: Debug> Debug for OrderLock<V>
[src]

Formats the value using the given formatter. Read more

impl<V> From<QrwLock<V>> for OrderLock<V>
[src]

Performs the conversion.

impl<V> From<V> for OrderLock<V>
[src]

Performs the conversion.

impl<V> Clone for OrderLock<V>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<T: OclPrm> From<OrderLock<Inner<T>>> for BufferSink<T>
[src]

Performs the conversion.

impl<T: OclPrm> From<OrderLock<Inner<T>>> for BufferStream<T>
[src]

Performs the conversion.

Auto Trait Implementations

impl<V> Send for OrderLock<V> where
    V: Send

impl<V> Sync for OrderLock<V> where
    V: Send