On 10/30/2010 10:57 AM, Paolo Bonzini wrote:
retry:
flags = crdp->flags;
if ((flags & URCU_CALL_RCU_REQUESTED))
continue;
if (cmpxchg (&crdp->flags, flags,
flags & ~URCU_CALL_RCU_RUNNING) != flags)
goto retry;
futex_wait (&crdp->flags,
flags & ~URCU_CALL_RCU_RUNNING);
(The above is missing setting URCU_CALL_RCU_RUNNING after the
futex_wait; resetting URCU_CALL_RCU_REQUESTED can be done more or less
anywhere, e.g. after synchronize_rcu).
Paolo
_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev