As other commenters have pointed out, cooperative multitasking is actually a great fit for I/O bound code.