3 ms·
> No, seriously, it's right there in the man page, discussing exactly this scenario and how to avoid it. The point is, do all of the other configurations for e
by naasking 4y ago
> No, seriously, it's right there in the man page, discussing exactly this scenario and how to avoid it.
The point is, do all of the other configurations for epoll have legitimate usecases justifying the complexity and need for those parameters? The kqueue design scales from single-threaded to multithreaded scenarios without issue and without all of these pitfalls, so why not just adopt that design? Why does the specific issue need to be a solution described in the man page at all?
> As the article linked yesterday points out, epoll() is the "API that powers the internet", and has effectively solved the C10k problem for everyone that has it.
Being able to solve a problem and doing it well are not the same. The latter arguably deserves criticism.
- ajross 4y ago> The latter arguably deserves criticism. Ahem. The headline under discussion is "fundamentally broken", which given the context you've granted, sounds closer to a lie than the truth to me. Meh. OS advocates will always have their aesthetic wars, they have for decades and it's not going to stop. I'm just trying to draw a line at what constitutes appropriate criticism, and this went way over the line.
- naasking 4y ago> The headline under discussion is "fundamentally broken", which given the context you've granted, sounds closer to a lie than the truth to me. If an abstraction requires a series of special incantations to use correctly, and the other modes of use don't have legitimate use cases of their own, "fundamentally broken" sounds like a fair conclusion.
- ajross 4y ago> a series of special incantations These are the words people use to describe something they don't like but which they don't understand. Really, just read the man page. It's a low level OS facility; these aren't simple APIs (neither is kqueue, FWIW). If you can figure out file descriptor passing or socket options, you can figure out epoll. If you really can't figure out epoll, you probably want to be working at a different layer of the abstraction stack.
- naasking 4y agoNo, it's pretty well understood at this point that epoll is worse by comparison. You can see it quite clearly in the number of gotchas and the limitations when compared to kqueue: https://habr.com/en/post/600123/#linux-and-epoll https://habr.com/en/post/600123/#linux-and-epoll
- ajross 4y agoAgain it amuses me that you've now flipped twice between "worse by comparison / deserving of criticism" and outrageous hyperbole like "fundamentally broken". I can't tell if you want to debate the minutiae of OS synchronization abstractions or just yell at me. I'm happy to do the former if you'll just put the knives away.
- naasking 4y agoI already addressed this. There's no flipping, they mean the same thing in this context; epoll was supposed to allow the expression of a certain class of programs, but it instead instead encouraged a bunch of broken, fragile programming patterns, and epoll tiself required numerous revisions and extensions to to actually get the behaviour it should have had to begin with, and also limited to a subset of the kernel abstractions kqueue supports. That's considerably worse than kqueue to the point where it's broken. I don't see any further need to discuss it frankly, we've each said our piece.
- ajross 4y ago> [reasoned debate and outrageous hyperbole] mean the same thing in this context; Then with all respect, I think your strategy for debate is fundamentally broken, not unlike your understanding of the epoll facility or ability to read its man page, so I take my leave.
- naasking 4y ago> I think your strategy for debate is fundamentally broken I find that pretty rich considering you provided literally no evidence of your claims, where I provided at least one detailed analysis of both epoll and kqueue in addition to the article for this thread, and yet you somehow feel entitled to make personal attacks on my technical abilities. But sure, you do you. Best of luck with that.