MITライセンス(またはそれより緩い)で軽量でポータブルなファイバーライブラリを手に入れたいと思います。Boost.Coroutine は適格ではなく (軽量ではない)、Portable Coroutine Library も Kent C++CSP (どちらも GPL) も適格ではありません。
編集:見つけるのを手伝ってくれませんか?:)
MITライセンス(またはそれより緩い)で軽量でポータブルなファイバーライブラリを手に入れたいと思います。Boost.Coroutine は適格ではなく (軽量ではない)、Portable Coroutine Library も Kent C++CSP (どちらも GPL) も適格ではありません。
編集:見つけるのを手伝ってくれませんか?:)
どちらも C 用に書かれています。
超軽量の「スレッド」については、ウィキペディアの記事の下部にある Protothreads をご覧ください。
超高速で軽量な C 非対称コルーチン ライブラリlibacoがあります。
それは非常に小さく、非常に高速で、メモリ効率が非常に高いです。
すぐに使用できる C コルーチン ライブラリの実装に加えて、ここでは、最速で正確なコルーチン ライブラリを実装する方法についての詳細なドキュメントと、厳密な数学的証明を示します。
LOC は 700 以下ですが、コルーチン ライブラリに必要なすべての機能を備えています。
ベンチマーク部分は、AWS c5d.large マシンで、コルーチン間のコンテキスト切り替えの 1 回に約 10 ns (スタンドアロン スタックの場合) しかかからないことを示しています。
ユーザーは、スタンドアロン スタックまたは共有スタック (他のユーザーと共有可能) を使用して新しいコルーチンを作成することを選択できます。
これは非常にメモリ効率が高く、10,000,000 個の co を同時に実行しても 2.8 GB の物理メモリしかかかりません (tcmalloc で実行、各 co は 120B のコピー スタック サイズ構成を持ちます)。
また、非常に詳細なドキュメントもあります。
PS:
これは、Apache ライセンス、バージョン 2.0 の下にあります。