1. A method of processing a received packet of a network processor, wherein the network processor comprises a plurality of processing modules and at least one shared memory, the method comprising: generating one or more tasks corresponding to each received packet; sending, by a source processing module, a task message corresponding to a task to a destination processing module, the task message comprising a task identifier and a task size; receiving, by the destination processing module, the task message; determining, by the destination processing module, (i) an associated one of a plurality of task queues of the destination processing module in which to store the task, and (ii) based on (1) a used cache counter of the destination processing module associated with the associated task queue and (2) a number of cache lines required for the received task, whether the associated task queue has reached a usage threshold; if the associated task queue has reached the usage threshold: sending a backpressure message to the source processing module; otherwise, if the associated task queue has not reached the usage threshold: accepting the received task and storing data associated with the received task in the associated task queue; incrementing the used cache counter for the associated task queue corresponding to the number of cache lines required for the received task; and processing, by the destination processing module, the received task.