- * operation may "fail" if the future value is already set (with a later
- * expiration), or if the futurevalues set has reached its maximum.
+ * operation may "fail" if the future value has already been run (within some
+ * sloppiness window of this expiration), or if the futurevalues set has
+ * reached its maximum.
* @see model_params.maxfuturevalues
*
* @param value is the value to backtrack to.
* @return True if the future value was successully added; false otherwise
*/
bool Node::add_future_value(uint64_t value, modelclock_t expiration) {
* @see model_params.maxfuturevalues
*
* @param value is the value to backtrack to.
* @return True if the future value was successully added; false otherwise
*/
bool Node::add_future_value(uint64_t value, modelclock_t expiration) {
-
- if (suitableindex!=-1) {
- future_values[suitableindex].expiration=expiration;
+ if (idx > future_index) {
+ /* Future value hasn't been explored; update expiration */
+ future_values[idx].expiration = expiration;