According to the OpenCL specification of clEnqueueWriteBuffer:
If blocking_write is CL_FALSE, the OpenCL implementation will use ptr to perform a nonblocking write. As the write is non-blocking the implementation can return immediately. The memory pointed to by ptr cannot be reused by the application after the call returns. The event argument returns an event object which can be used to query the execution status of the write command. When the write command has completed, the memory pointed to by ptr can then be
reused by the application.
What is the definition of “reuse” in this scenario? Let say I call nonblocking writer buffer function, and right after calling I read the data at ptr without modifying it. Is it okay to do so since I’m not changing the values?