eventLoop loop; void on_accept(fd) { loop.register(fd, READ); } void on_read(fd, input) { output = process(input); loop.register(fd, WRITE, output); } void on_write(fd) { close(fd); } void server(int listen_socket) { loop.register(listen_socket, ACCEPT); loop.run(); }