According to some embodiments, each of a plurality of threads receives a
start signal from a previous thread and a data packet from a buffer. Each
thread issues a command to store the data packet in a memory, receives a
continue signal from the previous thread, transmits a continue signal to
a next thread after the data packet is stored in the memory, disposes of
the data packet, receives an indication that the buffer has received a
new packet, receives a start signal from the previous thread, and
transmits a start signal to a next thread.