>>106592223
both of them are unnecessary when everything can be done with a simple event loop
for io requests submit to os and wait for completion event
for compute jobs submit to a thread pool and wait for completion event