flouthoc / envelop.c

:ocean: Thread-less, event-loop based tiny http-server from scratch using epoll. Learning Purpose.
MIT License
83 stars 47 forks source link

EWOULDBLOCK is set by read() #8

Open intc opened 5 years ago

intc commented 5 years ago

Hi!

Thought to give a short comment because of the heart warming "It ain't much, but it's honest work" approach. =)

While reading envelop.c (only the event loop part to be exact), noticed that you are checking EWOULDBLOCK in a weird place.

Using event loop in it self does not require non blocking socket. You can check a nicely written epoll (very minimalistic, blocking) variant in here: https://github.com/WhaleGirl/epoll-Server-client.

In practice how ever.. one runs out of the read buffer sooner or later?

For a non-blocking scenario I'd recommend to check this: https://eklitzke.org/blocking-io-nonblocking-io-and-epoll. This should give you the correct direction.

Keep up with your good (and honest ;) work!

flouthoc commented 5 years ago

@intc Thanks a lot for sharing these links. I really appreciate and yes using EWOULDBLOCK here doesn't makes any sense. I'll just go through these references and change the code.

Cheers :smile: