-bool Node::add_future_value(uint64_t value) {
- for (unsigned int i = 0; i < future_values.size(); i++)
- if (future_values[i] == value)
- return false;
+bool Node::add_future_value(uint64_t value, modelclock_t expiration) {
+ int suitableindex=-1;
+ for (unsigned int i = 0; i < future_values.size(); i++) {
+ if (future_values[i].value == value) {
+ if (future_values[i].expiration>=expiration)
+ return false;
+ if (future_index < i) {
+ suitableindex=i;
+ }
+ }
+ }