2009-08-17 7 views
10

MITライセンス(またはより緩い)の軽量でポータブルなファイバーlibを入手したいと思います。 Boost.Coroutineは、軽量ではなく、Portable Coroutine LibraryやKent C++ CSP(どちらもGPL)のどちらにも適合しません。軽量でポータブルなC++ファイバー、MITライセンス

編集:見つけてもらえますか? :)

+0

へぇを、と思われます。 :) –

答えて

9
  1. Libtask:MITライセンス
  2. Libconcurrency:LGPL(!MITよりも少しタイト、それは機能ライブラリです)

はどちらがC.

+0

setcontext()/ setmcontext()は、特定のプラットフォームで動作するかもしれませんが、それ以外は移植性があります。 –

+0

cygwinではsetcontextはありません。 – user2023370

3

list of implementations for C

は、超軽量の「スレッド」のWikipediaの記事の下部にあるProtothreadsを見てみましょう。

+0

私は最終的に有望なhttp://www.sics.se/~adam/pt/download.htmlを見つけました。 –

+0

暗黙の状態のスイッチ/ケースラッパーになるように設計されています。私が探していたものではなく、やや興味深いものです。 –

5

のために書かれている私は実際にこれについては、これまではbloggedでした。見てみましょう!あなたの質問に答えてくれることを願っていますその中で、私は数多くの図書館をカバーしており、システムプログラミング(非同期IO)に役立つものに特に関心がありました。

明らかにこのカバレッジから除外されているのは、Boost.Coroutineです。これについては、ここで説明します。 Boost.Coroutineは概念的に(その種類のファミリの点で)「ヘビー級」と見なされますが、実装は非常に効率的です。実際の問題は、Boost.Coroutineが不完全であり、(最後に私が確認した)完全なものから遠いことです。 Boost.Asio(これはBoost.Coroutineの主な目的の1つでした)と一緒に使用することを本当に楽しみにしていたので、私はそのスターターではない問題を通して著者と一緒に仕事をしていましたが、 Boostの正式なレビュー段階に彼の仕事を取り入れる時間があった。

+0

あなたのリンクにバグがあると思います。試してみてくださいhttp://yz.mit.edu/wp/cooperative-threads-for-cc/ – user2023370

+0

ありがとう、URLを修正! – Yang

1

は今、あなたはブーストライセンスを持つ2つのより良いオプションがあります。私はそこにすべてのそれらAltruistsのための未踏の領域を発見したよう