|
16 | 16 | ///
|
17 | 17 |
|
18 | 18 | #include <atomic>
|
| 19 | +#include <iostream> |
19 | 20 | #include <string>
|
20 | 21 |
|
21 | 22 | /**
|
@@ -47,14 +48,32 @@ class Ecf {
|
47 | 48 | const Ecf& operator=(const Ecf&) = delete;
|
48 | 49 |
|
49 | 50 | /// Increment and then return state change no
|
50 |
| - static counter_t incr_state_change_no(); |
51 |
| - static counter_t state_change_no() { return state_change_no_; } |
52 |
| - static void set_state_change_no(counter_t x) { state_change_no_ = x; } |
| 51 | + static counter_t incr_state_change_no() { |
| 52 | + if (server_) { |
| 53 | + ++state_change_no_; |
| 54 | + } |
| 55 | + return state_change_no_; |
| 56 | + } |
| 57 | + static counter_t state_change_no() { |
| 58 | + return state_change_no_; |
| 59 | + } |
| 60 | + static void set_state_change_no(counter_t x) { |
| 61 | + state_change_no_ = x; |
| 62 | + } |
53 | 63 |
|
54 | 64 | /// The modify_change_no_ is used for node addition and deletion and re-ordering
|
55 |
| - static counter_t incr_modify_change_no(); |
56 |
| - static counter_t modify_change_no() { return modify_change_no_; } |
57 |
| - static void set_modify_change_no(counter_t x) { modify_change_no_ = x; } |
| 65 | + static counter_t incr_modify_change_no() { |
| 66 | + if (server_) { |
| 67 | + ++modify_change_no_; |
| 68 | + } |
| 69 | + return modify_change_no_; |
| 70 | + } |
| 71 | + static counter_t modify_change_no() { |
| 72 | + return modify_change_no_; |
| 73 | + } |
| 74 | + static void set_modify_change_no(counter_t x) { |
| 75 | + modify_change_no_ = x; |
| 76 | + } |
58 | 77 |
|
59 | 78 | /// Returns true if we are on the server side.
|
60 | 79 | /// Only in server side do we increment state/modify numbers
|
@@ -91,8 +110,8 @@ class Ecf {
|
91 | 110 | static bool server_;
|
92 | 111 | static bool debug_equality_;
|
93 | 112 | static unsigned int debug_level_;
|
94 |
| - static thread_local atomic_counter_t state_change_no_; |
95 |
| - static thread_local atomic_counter_t modify_change_no_; |
| 113 | + static atomic_counter_t state_change_no_; |
| 114 | + static atomic_counter_t modify_change_no_; |
96 | 115 | };
|
97 | 116 |
|
98 | 117 | /// Make sure the Ecf number don't change
|
|
0 commit comments