small single-threaded poll(2) webserver in x86-64 assembly
Find a file
root fc1cc26b0f rewrite client__pollout
algorithm:
1. call client__pollout__before_fresh_lines
2. if error, return
3. find line length
4. if no line, set POLLIN and goto 8
5. call client__pollout__line
6. if error, goto 7
7. finished with this line; goto 3
8. move the final incomplete line to the start of the client's buffer
9. return
2025-05-21 09:32:25 +00:00
.gitignore makefile 2025-05-04 11:26:20 +00:00
client-pollin.txt client__pollin diagram 2025-05-17 08:15:07 +00:00
client.s rewrite client__pollout 2025-05-21 09:32:25 +00:00
clients.s bugfix: removing pollfds[0] actually removed pollfds[-1] 2025-05-13 12:22:36 +00:00
constants.c EAGAIN in constants.c 2025-05-21 09:08:32 +00:00
main.s rewrite client__pollout 2025-05-21 09:32:25 +00:00
makefile nice readme; fix makefile 2025-05-17 10:50:01 +00:00
pollfds.s echo server, multiple clients, lines <256 bytes 2025-05-13 12:07:03 +00:00
readline.s client__pollin: read as much as possible; client__pollout: do processing 2025-05-17 08:10:55 +00:00
readme.md nice readme; fix makefile 2025-05-17 10:50:01 +00:00
server.s server.s: use r15 not r10 for persisting thru syscalls 2025-05-21 09:08:43 +00:00