diff --git a/ircd/cl.cc b/ircd/cl.cc index 34121dc6d..5cf75fd65 100644 --- a/ircd/cl.cc +++ b/ircd/cl.cc @@ -958,17 +958,16 @@ try write = true; break; - case std::memory_order_acq_rel: - read = true; - write = true; - break; - case std::memory_order_seq_cst: read = true; write = true; blocking = true; break; + case std::memory_order_acq_rel: + invalidate = true; + break; + case std::memory_order_release: break; } @@ -983,6 +982,10 @@ try if(!flags && !data.mapped) return; + assert(flags || data.mapped); + assert(!this->object); + this->object = &data; + auto &q { queue[0][0] @@ -993,12 +996,8 @@ try make_deps(this, opts) }; - assert(!this->object); - this->object = &data; - int err {CL_SUCCESS}; assert(!this->handle); - assert(flags || data.mapped); if(flags) data.mapped = clEnqueueMapBuffer (