Takes out backoff in misc data structures
authorPeizhao Ou <peizhaoo@uci.edu>
Tue, 13 Mar 2018 02:46:31 +0000 (19:46 -0700)
committerPeizhao Ou <peizhaoo@uci.edu>
Tue, 13 Mar 2018 02:46:31 +0000 (19:46 -0700)
cds/misc/barrier.h
cds/misc/mcs-lock.h
cds/misc/rwlock.h
cds/misc/seqlock.h
cds/misc/ticket_lock.h

index 6d0366c71f2869bf193c282711eba5854f85b60a..cb20a3f66ca9c3de17f5a0defda6266c6bfce92f 100644 (file)
@@ -32,10 +32,10 @@ public:
       step_.fetch_add(1, std::memory_order_release);
       return true;
     } else {
       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) {
       /* Run in circles and scream like a little girl.  */
       while (step_.load(std::memory_order_acquire) == step) {
-        backoff();
+//        backoff();
       }
       return false;
     }
       }
       return false;
     }
index a6eb04e63556a99189d112c690ef94f843785a3c..77068f2adbeb6467176c8ab4d44fddeb3afb7968 100644 (file)
@@ -63,9 +63,9 @@ public:
 
       // now this is the spin -
       // wait on predecessor setting my flag -
 
       // now this is the spin -
       // wait on predecessor setting my flag -
-      ExpBackoff backoff;
+//      ExpBackoff backoff;
       while (me->gate.load(std::memory_order_acquire)) {
       while (me->gate.load(std::memory_order_acquire)) {
-        backoff();
+//        backoff();
       }
     }
   }
       }
     }
   }
@@ -84,12 +84,12 @@ public:
       }
 
       // (*1) catch the race :
       }
 
       // (*1) catch the race :
-      ExpBackoff backoff;
+//      ExpBackoff backoff;
       for (;;) {
         next = me->next.load(std::memory_order_acquire);
         if (next != nullptr)
           break;
       for (;;) {
         next = me->next.load(std::memory_order_acquire);
         if (next != nullptr)
           break;
-        backoff();
+//        backoff();
       }
     }
 
       }
     }
 
index e8c6465ed9b88d1e8999c35ee2e0f1d5d67aeae6..a1f87718a11189efe4c2b72f521bc47479f440b2 100644 (file)
@@ -31,12 +31,12 @@ public:
   }
 
   void read_lock() {
   }
 
   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) {
     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);
     }
       }
       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);
   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) {
     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);
       }
       priorvalue =
           atomic_fetch_sub_explicit(&lock, RW_LOCK_BIAS, memory_order_acquire);
index 7427053924627808910ca05eb9a01c41028aefa1..64577696a6a039a7bf006ac91f62ac705ab4eb57 100644 (file)
@@ -25,11 +25,11 @@ public:
   }
 
   int read() {
   }
 
   int read() {
-    ExpBackoff backoff;
+//    ExpBackoff backoff;
     while (true) {
       int old_seq = seq_.load(memory_order_acquire);
       if (old_seq % 2 == 1) {
     while (true) {
       int old_seq = seq_.load(memory_order_acquire);
       if (old_seq % 2 == 1) {
-        backoff();
+//        backoff();
         continue;
       }
 
         continue;
       }
 
@@ -41,12 +41,12 @@ public:
   }
 
   void write(int new_data) {
   }
 
   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) {
     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
       }
 
         continue; // Retry
       }
 
index 233b4400c9fba3de6269febde2a874fd37599745..b2d3f888e8a35c139fd911d5b541f0265804749d 100644 (file)
@@ -24,14 +24,14 @@ public:
     // First grab a ticket
     unsigned my_ticket = ticket.fetch_add(1, std::memory_order_relaxed);
     // Spinning for my turn
     // 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 {
     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();
       }
     }
   }
       }
     }
   }