-- Listener Scenario create socket, perform bind, set listening +add read-event listener +start loop -- Comm Scenario provided socket -inside loop begin coro read - data not ready yield sock, needRead end coro coro parent == callback (coro parent call coro(sock, event) if not ok, go back.. end if newEvent ~= event then unset event, reset newEvent end)