A hybrid thread / fiber task scheduler written in C++ 11
https://github.com/google/marl
fiber にも対応している task scheduler です.
thread/task scheduler ですといくつか他に実装はありますが, fiber 対応で Android なども対応で依存ライブラリ無しというのは marl くらいな気もしますのでよさそうな感じはあります.
Ticket という機能も実装されています.
SwiftShader で最近(?)使われているようで気になりました.
https://github.com/google/swiftshader
特にグラフィックスアプリ関連で使えそうですね.
defer
以外は, 記述は std::thread
に近い感じで使えますので, 自前アプリに組み込みは容易かと思います.
defer
リソースの解放など, スコープが抜けたあとに処理を実行するのに defer
というマクロが用意されています.
変数が delete されるときに呼ばれるのではないので, ライフサイクルに注意ください.