- int ret, prev_parity;
- void *oldptr;
-
- /*
- * We can publish the new pointer before we change the current qparity.
- * Readers seeing the new pointer while being in the previous qparity
- * window will make us wait until the end of the quiescent state before
- * we release the unrelated memory area. However, given we hold the
- * urcu_mutex, we are making sure that no further garbage collection can
- * occur until we release the mutex, therefore we guarantee that this
- * given reader will have completed its execution using the new pointer
- * when the next quiescent state window will be over.
- */
- oldptr = *ptr;
- *ptr = new;
- wmb(); /* Write ptr before changing the qparity */
- /* All threads should read qparity before ptr */
+ /* All threads should read qparity before accessing data structure. */
+ /* Write ptr before changing the qparity */