1. A method comprising: initiating a first snoop operation from a first bus agent to a shared cache; initiating a second snoop operation from a second bus agent to the shared cache, wherein the first bus agent is a first processor core within a multi-core processor and the second bus agent is a bus agent external to the multi-core processor; blocking the second snoop operation to allow the first snoop operation to complete by issuance of a snoop blocking signal from a logic coupled between the shared cache, the first processor core and the external bus agent, the blocking to prevent the external bus agent and other external bus agents from gaining ownership of the shared cache until the snoop blocking signal is de-asserted; issuing at least one block checking transaction from the logic after the first snoop operation has been initiated to determine if the second snoop operation is pending; and if the second snoop operation is pending, issuing a snoop unblock signal from the logic to unblock the second snoop operation after the first snoop operation has completed to allow the external bus agent to gain ownership of the shared cache.