Livelocks are prevented in multiple core processors by verifying that a
data access request is still valid before sending messages to processor
cores that may cause other data access requests to fail. A cache
coherency manager receives data access requests from multiple processor
cores. Upon receiving a data access request that may cause a livelock,
the cache coherency manager first sends an intervention message back to
the requesting processor core to confirm that this data access request
will succeed. If the requesting processor core determines that the data
access request is still valid, it directs the cache coherency manager to
proceed with the data access request. The cache coherency manager may
then send intervention messages to other processor cores to complete the
data access request. If the requesting processor core determines that the
data access request is invalid, it directs the cache coherency manager to
abandon the data access request.