A method for performing cacheline polling in a data processing system having a plurality of processes, said method comprising: requesting an action by a first process to be performed by a second process; and issuing an operation by the first process to determine whether or not the requested action has been completed by the second process, wherein the operation comprises instructions for: setting a first value of a buffer flag a cacheable memory location, the first value indicating that a data buffer is ready to be accessed by the second process; and setting a first reservation status in a reservation register of a cache(312, 314) of the data processing system, the first reservation status corresponding to the first value of the buffer flag; changing the first reservation status to a second reservation status using a cache snoop operation, in response to the second process changing the first value of the buffer flag to a second value of the buffer flag, the second value indicating that the second process has completed the requested action; in response to the first reservation status changing to the second reservation status, storing the contents of the cacheable memory in a register of the first process; and preventing a load instruction, LDRL, in a cacheline polling loop from execution until the first reservation status has been changed to the second reservation status. requesting an action by a first process to be performed by a second process; and issuing an operation by the first process to determine whether or not the requested action has been completed by the second process, wherein the operation comprises instructions for: setting a first value of a buffer flag a cacheable memory location, the first value indicating that a data buffer is ready to be accessed by the second process; and setting a first reservation status in a reservation register of a cache(312, 314) of the data processing system, the first reservation status corresponding to the first value of the buffer flag; changing the first reservation status to a second reservation status using a cache snoop operation, in response to the second process changing the first value of the buffer flag to a second value of the buffer flag, the second value indicating that the second process has completed the requested action; in response to the first reservation status changing to the second reservation status, storing the contents of the cacheable memory in a register of the first process; and preventing a load instruction, LDRL, in a cacheline polling loop from execution until the first reservation status has been changed to the second reservation status. setting a first value of a buffer flag a cacheable memory location, the first value indicating that a data buffer is ready to be accessed by the second process; and setting a first reservation status in a reservation register of a cache(312, 314) of the data processing system, the first reservation status corresponding to the first value of the buffer flag; changing the first reservation status to a second reservation status using a cache snoop operation, in response to the second process changing the first value of the buffer flag to a second value of the buffer flag, the second value indicating that the second process has completed the requested action; in response to the first reservation status changing to the second reservation status, storing the contents of the cacheable memory in a register of the first process; and preventing a load instruction, LDRL, in a cacheline polling loop from execution until the first reservation status has been changed to the second reservation status.