Submission timeline
2007–2026One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.
First comments on top threads
HN comment orderI've found myself at this webpage multiple times while trying to minimize the complexity of APIs in my C projects. I think it does a lovely job explaining control flow and it has helped me to think more explicitly about storage of state on and off the stack as well as the readability consequences of different approaches. My conclusion for now is that the choice to use C coroutines is best left to the library user. For example: Mongoose (https://github.com/cesanta/mongoose)…
A really good library that we use is libco[0], it supports different architectures and mechanisms. We use it extensively on Fluent Bit[1] to manage async IO network operations (epoll + coroutines). - [0] https://byuu.org/library/libco/ - [1] https://fluentbit.io
This is very nice in theory, but in practice you can only do it in assembly language, because no commonly used high level language supports the coroutine call primitive. This might have been true when the article was written, but things are slightly different today. JavaScript, Python, and C# have picked up generator primitives that can be abused to provide limited coroutine support. Lua, with actual coroutine support, is gaining in popularity. And it will be interesting to see what…
It is a little unfortunate that one of the few (or only) underlying abstraction of the machine that C chose to leave out was that of coroutines. I find this rather ironic because I have been told that PDPs, the virtual machine model that C is based on, had instruction level support for exchanging control very efficiently. I have also heard that VMs like LLVM aren't that good at portably exposing efficient exchange of control between stack frames (please correct…
The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.
- Breakout years
- 2
- Total points
- 765
- Total comments
- 229
100+ points or 50+ comments
reference only — not used in Hall rules or ranking
reference only — not used in Hall rules or ranking
Every submission
| Date | Title as submitted | By | Points | Comments |
|---|---|---|---|---|
| 2009-08-30 | Co-routines in C | scharan | 7 | 1 |
| 2009-09-21 | Coroutines in C | Rexxar | 40 | 16 |
| 2010-05-26 | Coroutines in C (Simon Tatham, 2000) | gjm11 | 58 | 16 |
| 2012-11-05 | Breaking coding standards with coroutines in C | neur0mancer | 4 | 0 |
| 2013-08-20 | Coroutines in C (2000) | gmac | 1 | 1 |
| 2014-11-16 | Coroutines in C (2000) | jeffreyrogers | 47 | 27 |
| 2015-08-22 | Coroutines in C (2000) | Keyframe | 5 | 0 |
| 2016-02-07 | Coroutines in C (2000) | adamnemecek | 43 | 11 |
| 2016-11-02 | Coroutines in C | valarauca1 | 5 | 0 |
| 2016-12-09 | Coroutines in C | ingve | 2 | 1 |
| 2017-02-03 | Coroutines in C | ingve | 3 | 0 |
| 2017-11-02 | Coroutines in C (2000) | sidedishes | 4 | 0 |
| 2019-02-07 | Coroutines in C (2000)First breakout | wooby | 181 | 59 |
| 2020-05-24 | Coroutines in C | ColinWright | 28 | 1 |
| 2023-07-08 | Coroutines in C (2000) | Paul-Craft | 10 | 2 |
| 2023-07-14 | Coroutines in C (2000) | swatson741 | 9 | 0 |
| 2023-09-02 | Coroutines in C (2000) | gone35 | 11 | 1 |
| 2024-02-25 | Coroutines in C (2000)Hall induction · Best thread · Latest 20+ point return | ColinWright | 307 | 93 |
