From 95deb7fa36a4680f7d2246358d219725db6bdcc1 Mon Sep 17 00:00:00 2001 From: Peizhao Ou Date: Mon, 12 Mar 2018 19:46:31 -0700 Subject: [PATCH] Takes out backoff in misc data structures --- cds/misc/barrier.h | 4 ++-- cds/misc/mcs-lock.h | 8 ++++---- cds/misc/rwlock.h | 8 ++++---- cds/misc/seqlock.h | 8 ++++---- cds/misc/ticket_lock.h | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cds/misc/barrier.h b/cds/misc/barrier.h index 6d0366c7..cb20a3f6 100644 --- a/cds/misc/barrier.h +++ b/cds/misc/barrier.h @@ -32,10 +32,10 @@ public: step_.fetch_add(1, std::memory_order_release); return true; } else { - ExpBackoff backoff; +// ExpBackoff backoff; /* Run in circles and scream like a little girl. */ while (step_.load(std::memory_order_acquire) == step) { - backoff(); +// backoff(); } return false; } diff --git a/cds/misc/mcs-lock.h b/cds/misc/mcs-lock.h index a6eb04e6..77068f2a 100644 --- a/cds/misc/mcs-lock.h +++ b/cds/misc/mcs-lock.h @@ -63,9 +63,9 @@ public: // now this is the spin - // wait on predecessor setting my flag - - ExpBackoff backoff; +// ExpBackoff backoff; while (me->gate.load(std::memory_order_acquire)) { - backoff(); +// backoff(); } } } @@ -84,12 +84,12 @@ public: } // (*1) catch the race : - ExpBackoff backoff; +// ExpBackoff backoff; for (;;) { next = me->next.load(std::memory_order_acquire); if (next != nullptr) break; - backoff(); +// backoff(); } } diff --git a/cds/misc/rwlock.h b/cds/misc/rwlock.h index e8c6465e..a1f87718 100644 --- a/cds/misc/rwlock.h +++ b/cds/misc/rwlock.h @@ -31,12 +31,12 @@ public: } void read_lock() { - ExpBackoff backoff; +// ExpBackoff backoff; int priorvalue = atomic_fetch_sub_explicit(&lock, 1, memory_order_acquire); while (priorvalue <= 0) { atomic_fetch_add_explicit(&lock, 1, memory_order_relaxed); while (atomic_load_explicit(&lock, memory_order_relaxed) <= 0) { - backoff(); +// backoff(); } priorvalue = atomic_fetch_sub_explicit(&lock, 1, memory_order_acquire); } @@ -45,12 +45,12 @@ public: void write_lock() { int priorvalue = atomic_fetch_sub_explicit(&lock, RW_LOCK_BIAS, memory_order_acquire); - ExpBackoff backoff; +// ExpBackoff backoff; while (priorvalue != RW_LOCK_BIAS) { atomic_fetch_add_explicit(&lock, RW_LOCK_BIAS, memory_order_relaxed); while (atomic_load_explicit(&lock, memory_order_relaxed) != RW_LOCK_BIAS) { - backoff(); +// backoff(); } priorvalue = atomic_fetch_sub_explicit(&lock, RW_LOCK_BIAS, memory_order_acquire); diff --git a/cds/misc/seqlock.h b/cds/misc/seqlock.h index 74270539..64577696 100644 --- a/cds/misc/seqlock.h +++ b/cds/misc/seqlock.h @@ -25,11 +25,11 @@ public: } int read() { - ExpBackoff backoff; +// ExpBackoff backoff; while (true) { int old_seq = seq_.load(memory_order_acquire); if (old_seq % 2 == 1) { - backoff(); +// backoff(); continue; } @@ -41,12 +41,12 @@ public: } void write(int new_data) { - ExpBackoff backoff; +// ExpBackoff backoff; while (true) { // This might be a relaxed too int old_seq = seq_.load(memory_order_acquire); if (old_seq % 2 == 1) { - backoff(); +// backoff(); continue; // Retry } diff --git a/cds/misc/ticket_lock.h b/cds/misc/ticket_lock.h index 233b4400..b2d3f888 100644 --- a/cds/misc/ticket_lock.h +++ b/cds/misc/ticket_lock.h @@ -24,14 +24,14 @@ public: // First grab a ticket unsigned my_ticket = ticket.fetch_add(1, std::memory_order_relaxed); // Spinning for my turn - ExpBackoff backoff; +// ExpBackoff backoff; while (true) { unsigned my_turn = turn.load(std::memory_order_acquire); if (my_turn == my_ticket) { // Now it's my turn return; } else { - backoff(); +// backoff(); } } } -- 2.34.1