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

Reply via email to