I can think of two possible implementations: 1. Progress thread running in the background 2. User level thread (ULT) with network interrupts
I can think of two possible implementations: