- bool updated_mod_order=w_modification_order(curr);
- bool updated_promises=resolve_promises(curr);
- updated=updated_mod_order|updated_promises;
+ bool updated_mod_order = w_modification_order(curr);
+ bool updated_promises = resolve_promises(curr);
+ updated = updated || updated_mod_order || updated_promises;
+
+ if (promises->size()==0) {
+ for (unsigned int i = 0; i<futurevalues->size(); i++) {
+ struct PendingFutureValue pfv=(*futurevalues)[i];
+ if (pfv.act->get_node()->add_future_value(pfv.value, pfv.expiration) &&
+ (!priv->next_backtrack || *pfv.act > *priv->next_backtrack))
+ priv->next_backtrack = pfv.act;
+ }
+ futurevalues->resize(0);
+ }