I challenge anyone to code this in C language:
function read_next_data(fd)
data = read_async( fd )
if len(data) == 0
=> Nothing to read, register to be called back when something is ready
event_polling_register( fd, read_next_data )
=> Go back to doing something else
else
=> Data was available and len(data) was received
add_data_to_buffer( buffer, data )
fi