Here is some information on the bug that was fixed:
In addition to fixing the eventcount signaling logic wrt the
single-producer/consumer queue, I have added the following functions:
You can use the functions above to take advantage of amortization wrt the #StoreLoad memory barrier that needs to be executed before the 'ac_eventcount_algo1_signal_naked(...)' gets called.
One simple example... Build batches of nodes and push pointers to the batches into the queue using 'ac_queue_spsc_push_nosig(...)'. Once your done with that you can do something like this for the final signal, and memory barrier:
/* try and build multiple batches of work */
/* push pointers to the batches into a set of
queues using 'ac_queue_spsc_push_nosig(...)' */
/* call ac_mb_fence() */
/* finally, signal each queues eventcount using */
This makes improvement on AppCore queuing API; what do you think?
Chris M. Thomasson