Standardではない邪道なC++ライブラリの開発日誌
Dradnats C++ Libraryでは、クラス内部での排他制御を原則として行わないことにします。また、静的な状態を持つライブラリ要素は極力避け、関数の引数として状態保存用のオブジェクトを渡すことにします。
内部で静的な状態を持たざるを得ないライブラリ要素に関しては、内部的に排他制御を行うか、スレッドローカル記憶域を使用することにします。これらは、DRADNATS_DISABLE_THREADマクロを定義することで抑止できるものとします。なお、DRADNATS_DISABLE_THREADマクロはアプリケーション側で定義するだけでなく、ライブラリのビルド時にも定義する必要があります。
アプリケーション側でのマルチスレッド対応は、Boost.Threadを使用することを前提とします。他の方式を使用することもおそらく問題はないでしょうが、積極的な配慮は行いません。
アプリケーション側でのマルチスレッド対応は、Boost.Threadを使用することを前提とします。他の方式を使用することもおそらく問題はないでしょうが、積極的な配慮は行いません。
この記事にコメントする