arrowhead-f / arrowhead-f/core-cpp

Why blocking I/O?

Open
#72 2 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.