X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libringbuffer%2Ffrontend_internal.h;h=c973e6b25f88c1cc905bedfb28463f7cc5499316;hb=16ec84c8bd34ce34dd59a9052e7a24eaa0f427f5;hp=43a2d0a2639b29d319ddb7b9d1d417855f9c96bc;hpb=8db078dccf54f56edbcbd20cff2430b5e7540801;p=lttng-ust.git diff --git a/libringbuffer/frontend_internal.h b/libringbuffer/frontend_internal.h index 43a2d0a2..c973e6b2 100644 --- a/libringbuffer/frontend_internal.h +++ b/libringbuffer/frontend_internal.h @@ -314,9 +314,9 @@ void lib_ring_buffer_write_commit_counter(const struct lttng_ust_lib_ring_buffer return; commit_seq_old = v_read(config, &shmp_index(handle, buf->commit_hot, idx)->seq); - while ((long) (commit_seq_old - commit_count) < 0) - commit_seq_old = v_cmpxchg(config, &shmp_index(handle, buf->commit_hot, idx)->seq, - commit_seq_old, commit_count); + if (caa_likely((long) (commit_seq_old - commit_count) < 0)) + v_set(config, &shmp_index(handle, buf->commit_hot, idx)->seq, + commit_count); } extern int lib_ring_buffer_create(struct lttng_ust_lib_ring_buffer *buf,