MCPcopy Create free account
hub / github.com/Gecode/gecode / _fail

Method _fail

gecode/kernel/core.hpp:4600–4623  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4598
4599 template<class VIC>
4600 void
4601 VarImp<VIC>::_fail(Space& home) {
4602 /*
4603 * An advisor that is executed might remove itself due to subsumption.
4604 * As entries are removed from front to back, the advisors must
4605 * be iterated in forward direction.
4606 */
4607 ActorLink** la = actorNonZero(pc_max+1);
4608 ActorLink** le = b.base+entries;
4609 if (la == le)
4610 return;
4611 // An advisor that is run, might be removed during execution.
4612 // As removal is done from the back the advisors have to be executed
4613 // in inverse order.
4614 do {
4615 if (Support::marked(*la)) {
4616 Advisor* a = Advisor::cast(static_cast<ActorLink*>
4617 (Support::unmark(*la)));
4618 assert(!a->disposed());
4619 Propagator& p = a->propagator();
4620 p.advise(home,*a);
4621 }
4622 } while (++la < le);
4623 }
4624
4625 template<class VIC>
4626 ModEvent

Callers

nothing calls this directly

Calls 5

markedFunction · 0.85
unmarkFunction · 0.85
disposedMethod · 0.80
propagatorMethod · 0.80
adviseMethod · 0.45

Tested by

no test coverage detected