A method for processing lock-and-access messages comprising: simultaneously requesting locking of and access to a target data object of a persistent memory be performed by a requesting processor of a plurality of processors of a computing system , the persistent memory being shared by the plurality of processors ; wherein simultaneously requesting comprises sending a single lock-and-access message to a memory-side accelerator, MSA , whereby the MSA is configured to control access to the persistent memory ; wherein the lock-and-access message includes: - a first memory capability pointing to the target data object, - a second memory capability pointing to a lock object that controls locking of the target data object, - wherein the memory capabilities are unforgeable pointers that grant particular types of access to a specific data object or data structure, - and a specified access operation that is requested; wherein the MSA comprises dedicated hardware that is configured to perform the functions of: receiving the lock-and-access message; fetching locking information that is stored in the lock object pointed to by the second memory capability; and determining, based on the locking information, whether to lock and perform the requested access operation on the target data object pointed to by the first memory capability for the requesting processor. simultaneously requesting locking of and access to a target data object of a persistent memory be performed by a requesting processor of a plurality of processors of a computing system , the persistent memory being shared by the plurality of processors ; wherein simultaneously requesting comprises sending a single lock-and-access message to a memory-side accelerator, MSA , whereby the MSA is configured to control access to the persistent memory ; wherein the lock-and-access message includes: - a first memory capability pointing to the target data object, - a second memory capability pointing to a lock object that controls locking of the target data object, - wherein the memory capabilities are unforgeable pointers that grant particular types of access to a specific data object or data structure, - and a specified access operation that is requested; - a first memory capability pointing to the target data object, - a second memory capability pointing to a lock object that controls locking of the target data object, - wherein the memory capabilities are unforgeable pointers that grant particular types of access to a specific data object or data structure, - and a specified access operation that is requested; wherein the MSA comprises dedicated hardware that is configured to perform the functions of: receiving the lock-and-access message; fetching locking information that is stored in the lock object pointed to by the second memory capability; and determining, based on the locking information, whether to lock and perform the requested access operation on the target data object pointed to by the first memory capability for the requesting processor. receiving the lock-and-access message; fetching locking information that is stored in the lock object pointed to by the second memory capability; and determining, based on the locking information, whether to lock and perform the requested access operation on the target data object pointed to by the first memory capability for the requesting processor. <EOS>