A method for avoiding deadlocks while performing non-atomic operations in a computer caching system including a main memory, at least one cache coupled to the main memory, and a plurality of processors coupled to the at least one cache, the method comprising steps of:
- sending, by a requesting processor to a cache associated with said requesting processor, a split lock request indicating that said requesting processor desires to perform a non-atomic operation on data in the main memory;
- sending, by a cache associated with said requesting processor, a lock message to the main memory in response to said split lock request;
- and
- sending, by the main memory in response to said lock message, a grant message that identifies a locking processor for which the main memory grants said split lock request, whereby each of the plurality of processors not identified as said locking processor is denied access to said data in the main memory until completion of said non-atomic operation.