Flag events

Note Flag events require OpenCL 1.1 or higher

Flag events allow the creation of events that complete whenever the user marks them. Flag events are marked via the try_mark method, which returns true if the event was successfully marked, and false if the event was already marked.

use blaze_rs::prelude::*;

#[global_context]
static CTX : SimpleContext = SimpleContext::default();

let flag = FlagEvent::new()?;
assert_eq!(flag.status(), Ok(EventStatus::Submitted));
assert_eq!(flag.try_mark(None), Ok(true));
assert_eq!(flag.status(), Ok(EventStatus::Complete));
assert_eq!(flag.try_mark(None), Ok(false));

Ok::<_, Error>()