1. A method comprising: determining, by an accelerated processing device (APD), that one or more tasks is to be implemented by a central processing unit (CPU), each task representing a function or operation to be performed; storing, by the APD, the one or more determined tasks in one of a plurality of memory mailboxes, wherein the memory mailboxes have an associated state, the associated state including a free, filling, active and returning state; and wherein the storing comprises: using a work item to scan the plurality of mailboxes for a mailbox in a free state, wherein the work item has an associated identifier; selecting a mailbox in a free state; storing the work item identifier, task and associated registers in the selected mailbox; and changing the state of the selected mailbox to an active state; generating, by the APD, a CPU interrupt to notify the CPU that the stored one or more tasks is to be processed; and processing, by the CPU, the stored tasks.