For now, that is exactly what I have. here's the pseudo-code:
Thread1:
Listen indefinitely until packet is received
Packet finally received, so process
yield so other thread can run
Thread2:
Listen indefinitely until packet is received
Packet finally received, so process
yield so other thread can run
The problem I see with the above "approach" is that it is not a good approach, for the resource to be tied up until a packet is received is such a waste.