arrowhead-f / arrowhead-f/core-cpp
Why blocking I/O?
- Dominant language
- C
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Reading through the source code, I noticed that you seem to use blocking I/O with thread pools. My impression is that most languages are recommending either to use green threads (Go, Erlang, [Java in the future](https://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html)) or async/await (C#, JavaScript, Dart) to avoid the comparatively high costs of OS thread switching. Skimming through the Internet, I noticed that async/await (called co-routines) are officially supported in C++20, but that support for it seems to exist for earlier C++ versions via e.g. [Boost.Asio](https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio.html).
Do you have any particular reasons for avoiding co-routines?
Contributor guide
No contributing guide indexed for this repository
Research direction
Review the existing source code areas that perform blocking I/O and use thread pools, then read the two-comment discussion for the maintainers' rationale. Done would require a decided scope for coroutine or alternative I/O changes, along with a documented design and implementation plan.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100