An event that the host can synchronise with. More...
#include <Event.hpp>
Public Member Functions | |
void | synchronize () const |
Block the host until the event completes. More... | |
Public Member Functions inherited from sp::Event | |
bool | isDone () const |
Returns true iff the work captured by this event has been completed. More... | |
Public Member Functions inherited from sp::RAIIObject< EventAllocator, bool > | |
RAIIObject (const CTorArgs &... args) | |
Allocate a new object and take ownership of it. More... | |
RAIIObject (const APIType &obj, bool own=true) | |
Wrap an existing object. More... | |
const APIType | get () const |
Get the underlying C API object (eg. cudaStream_t ) More... | |
APIType | get () |
Get the underlying C API object (eg. cudaStream_t ) More... | |
APIType | operator* () |
const APIType | operator* () const |
operator APIType () const | |
Implicitly convert to the C API type, so you can just pass this object to the C library whence it came. More... | |
operator APIType () | |
Friends | |
class | Stream |
Additional Inherited Members | |
Protected Types inherited from sp::RAIIObject< EventAllocator, bool > | |
using | APIType = typename AllocType::APIType |
The C API type. Something like cudaStream_t . More... | |
using | UnderlyingType = std::remove_pointer_t< APIType > |
An event that the host can synchronise with.
BlockingEvent
provides a synchronize()
function that blocks the host until the work represented by the event is done. BlockingEvent
s are less efficient than normal Event
s for device-side synchronisation between streams. Avoid using BlockingEvent
unless you really need to synchronise with the event from the host.
You can obtain a BlockingEvent
representing the outstanding work on a stream by calling sp::Stream::recordBlockingEvent()
.
void sp::BlockingEvent::synchronize | ( | ) | const |
Block the host until the event completes.